File tree Expand file tree Collapse file tree 2 files changed +33
-3
lines changed
RestSharp.IntegrationTests Expand file tree Collapse file tree 2 files changed +33
-3
lines changed Original file line number Diff line number Diff line change @@ -141,10 +141,35 @@ public void Reports_5xx_Status_Code_Success_Accurately()
141
141
142
142
Assert . IsFalse ( response . IsSuccessful ) ;
143
143
}
144
+
145
+ [ Test ]
146
+ public void ContentType_Additional_Information ( )
147
+ {
148
+ _server . SetHandler ( Handlers . Generic < ResponseHandler > ( ) ) ;
149
+ var request = new RestRequest ( Method . POST )
150
+ {
151
+ RequestFormat = DataFormat . Json ,
152
+ Resource = "contenttype_odata"
153
+ } ;
154
+ request . AddBody ( "bodyadsodajjd" ) ;
155
+ request . AddHeader ( "X-RequestDigest" , "xrequestdigestasdasd" ) ;
156
+ request . AddHeader ( "Accept" , "application/json; odata=verbose" ) ;
157
+ request . AddHeader ( "Content-Type" , "application/json; odata=verbose" ) ;
158
+
159
+ IRestResponse < Response > response = _client . Execute < Response > ( request ) ;
160
+
161
+ Assert . AreEqual ( HttpStatusCode . OK , response . StatusCode ) ;
162
+ }
144
163
}
145
164
146
165
public class ResponseHandler
147
166
{
167
+ private void contenttype_odata ( HttpListenerContext context )
168
+ {
169
+ bool hasCorrectHeader = context . Request . Headers [ "Content-Type" ] == "application/json; odata=verbose" ;
170
+ context . Response . StatusCode = hasCorrectHeader ? 200 : 400 ;
171
+ }
172
+
148
173
private void error ( HttpListenerContext context )
149
174
{
150
175
context . Response . StatusCode = 400 ;
Original file line number Diff line number Diff line change @@ -316,18 +316,23 @@ private string EncodeParameters()
316
316
317
317
private void PreparePostBody ( HttpWebRequest webRequest )
318
318
{
319
+ bool needsContentType = String . IsNullOrEmpty ( webRequest . ContentType ) ;
320
+
319
321
if ( HasFiles || AlwaysMultipartFormData )
320
322
{
321
- webRequest . ContentType = GetMultipartFormContentType ( ) ;
323
+ if ( needsContentType )
324
+ webRequest . ContentType = GetMultipartFormContentType ( ) ;
322
325
}
323
326
else if ( HasParameters )
324
327
{
325
- webRequest . ContentType = "application/x-www-form-urlencoded" ;
328
+ if ( needsContentType )
329
+ webRequest . ContentType = "application/x-www-form-urlencoded" ;
326
330
RequestBody = EncodeParameters ( ) ;
327
331
}
328
332
else if ( HasBody )
329
333
{
330
- webRequest . ContentType = RequestContentType ;
334
+ if ( needsContentType )
335
+ webRequest . ContentType = RequestContentType ;
331
336
}
332
337
}
333
338
You can’t perform that action at this time.
0 commit comments