diff options
Diffstat (limited to 'core/java/android/net/http/Request.java')
-rw-r--r-- | core/java/android/net/http/Request.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/core/java/android/net/http/Request.java b/core/java/android/net/http/Request.java index df4fff0..aeb85a2 100644 --- a/core/java/android/net/http/Request.java +++ b/core/java/android/net/http/Request.java @@ -116,12 +116,17 @@ class Request { mBodyProvider = bodyProvider; mBodyLength = bodyLength; - if (bodyProvider == null) { + if (bodyProvider == null && !"POST".equalsIgnoreCase(method)) { mHttpRequest = new BasicHttpRequest(method, getUri()); } else { mHttpRequest = new BasicHttpEntityEnclosingRequest( method, getUri()); - setBodyProvider(bodyProvider, bodyLength); + // it is ok to have null entity for BasicHttpEntityEnclosingRequest. + // By using BasicHttpEntityEnclosingRequest, it will set up the + // correct content-length, content-type and content-encoding. + if (bodyProvider != null) { + setBodyProvider(bodyProvider, bodyLength); + } } addHeader(HOST_HEADER, getHostPort()); |