@@ -140,7 +140,7 @@ private HttpResponse PostPutInternal(string method)
140
140
{
141
141
var webRequest = ConfigureWebRequest ( method , Url ) ;
142
142
143
- PreparePostData ( webRequest ) ;
143
+ PreparePostBody ( webRequest ) ;
144
144
145
145
WriteRequestBody ( webRequest ) ;
146
146
return GetResponse ( webRequest ) ;
@@ -214,33 +214,29 @@ private static HttpWebResponse GetRawResponse(HttpWebRequest request)
214
214
}
215
215
}
216
216
217
- private void PreparePostData ( HttpWebRequest webRequest )
217
+ private void WriteRequestBody ( HttpWebRequest webRequest )
218
218
{
219
- if ( HasFiles || AlwaysMultipartFormData )
219
+ if ( HasBody || HasFiles || AlwaysMultipartFormData )
220
220
{
221
- webRequest . ContentType = GetMultipartFormContentType ( ) ;
222
-
223
- using ( var requestStream = webRequest . GetRequestStream ( ) )
224
- {
225
- WriteMultipartFormData ( requestStream ) ;
226
- }
221
+ #if ! WINDOWS_PHONE && ! PocketPC
222
+ webRequest . ContentLength = CalculateContentLength ( ) ;
223
+ #endif
227
224
}
228
225
229
- PreparePostBody ( webRequest ) ;
230
- }
231
-
232
- private void WriteRequestBody ( HttpWebRequest webRequest )
233
- {
234
- if ( ! HasBody )
235
- return ;
236
-
237
- var bytes = this . RequestBodyBytes ?? this . Encoding . GetBytes ( this . RequestBody ) ;
238
-
239
- webRequest . ContentLength = bytes . Length ;
240
-
241
226
using ( var requestStream = webRequest . GetRequestStream ( ) )
242
227
{
243
- requestStream . Write ( bytes , 0 , bytes . Length ) ;
228
+ if ( HasFiles || AlwaysMultipartFormData )
229
+ {
230
+ WriteMultipartFormData ( requestStream ) ;
231
+ }
232
+ else if ( RequestBodyBytes != null )
233
+ {
234
+ requestStream . Write ( RequestBodyBytes , 0 , RequestBodyBytes . Length ) ;
235
+ }
236
+ else
237
+ {
238
+ WriteStringTo ( requestStream , RequestBody ) ;
239
+ }
244
240
}
245
241
}
246
242
0 commit comments