@@ -140,7 +140,7 @@ private HttpResponse PostPutInternal(string method)
140140 {
141141 var webRequest = ConfigureWebRequest ( method , Url ) ;
142142
143- PreparePostData ( webRequest ) ;
143+ PreparePostBody ( webRequest ) ;
144144
145145 WriteRequestBody ( webRequest ) ;
146146 return GetResponse ( webRequest ) ;
@@ -214,33 +214,29 @@ private static HttpWebResponse GetRawResponse(HttpWebRequest request)
214214 }
215215 }
216216
217- private void PreparePostData ( HttpWebRequest webRequest )
217+ private void WriteRequestBody ( HttpWebRequest webRequest )
218218 {
219- if ( HasFiles || AlwaysMultipartFormData )
219+ if ( HasBody || HasFiles || AlwaysMultipartFormData )
220220 {
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
227224 }
228225
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-
241226 using ( var requestStream = webRequest . GetRequestStream ( ) )
242227 {
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+ }
244240 }
245241 }
246242
0 commit comments