Index: /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/examples/org/apache/http/examples/ElementalHttpGet.java =================================================================== --- /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/examples/org/apache/http/examples/ElementalHttpGet.java (revision 357459) +++ /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/examples/org/apache/http/examples/ElementalHttpGet.java (working copy) @@ -79,7 +79,7 @@ } System.out.println(">> Request URI: " + request.getRequestLine().getUri()); conn.sendRequest(request); - HttpResponse response = conn.receiveResponse(request.getParams()); + HttpResponse response = conn.receiveResponse(request); System.out.println("<< Response: " + response.getStatusLine()); System.out.println(EntityUtils.toString(response.getEntity())); System.out.println("=============="); Index: /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/examples/org/apache/http/examples/ElementalHttpPost.java =================================================================== --- /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/examples/org/apache/http/examples/ElementalHttpPost.java (revision 357459) +++ /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/examples/org/apache/http/examples/ElementalHttpPost.java (working copy) @@ -106,7 +106,7 @@ } System.out.println(">> Request URI: " + request.getRequestLine().getUri()); conn.sendRequest(request); - HttpResponse response = conn.receiveResponse(request.getParams()); + HttpResponse response = conn.receiveResponse(request); System.out.println("<< Response: " + response.getStatusLine()); System.out.println(EntityUtils.toString(response.getEntity())); System.out.println("=============="); Index: /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/HttpClientConnection.java =================================================================== --- /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/HttpClientConnection.java (revision 357459) +++ /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/HttpClientConnection.java (working copy) @@ -61,8 +61,8 @@ void sendRequestEntity(HttpEntityEnclosingRequest request) throws HttpException, IOException; - HttpResponse receiveResponse(HttpParams params) throws HttpException, IOException; + HttpResponse receiveResponse(HttpRequest request) throws HttpException, IOException; - HttpResponse receiveResponse(HttpParams params, int timeout) throws HttpException, IOException; + HttpResponse receiveResponse(HttpRequest request, int timeout) throws HttpException, IOException; } Index: /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/executor/HttpRequestExecutor.java =================================================================== --- /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/executor/HttpRequestExecutor.java (revision 357459) +++ /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/executor/HttpRequestExecutor.java (working copy) @@ -128,8 +128,7 @@ && request instanceof HttpEntityEnclosingRequest) { // Do 'expect: continue' handshake conn.sendRequestHeader((HttpEntityEnclosingRequest)request); - response = conn.receiveResponse(request.getParams(), - WAIT_FOR_CONTINUE_MS); + response = conn.receiveResponse(request, WAIT_FOR_CONTINUE_MS); if (response == null) { // No response. The 'expect: continue' is likely not supported break; @@ -152,7 +151,7 @@ new Boolean(true)); for (;;) { // Loop until non 1xx resposne is received - response = conn.receiveResponse(request.getParams()); + response = conn.receiveResponse(request); int statuscode = response.getStatusLine().getStatusCode(); if (statuscode >= HttpStatus.SC_OK) { break; Index: /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/impl/DefaultHttpClientConnection.java =================================================================== --- /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/impl/DefaultHttpClientConnection.java (revision 357463) +++ /home/oleg/src/apache.org/jakarta-httpcomponents/http-core/src/java/org/apache/http/impl/DefaultHttpClientConnection.java (working copy) @@ -228,27 +228,27 @@ this.datatransmitter); } - public HttpResponse receiveResponse(final HttpParams params) + public HttpResponse receiveResponse(final HttpRequest request) throws HttpException, IOException { - if (params == null) { - throw new IllegalArgumentException("HTTP parameters may not be null"); + if (request == null) { + throw new IllegalArgumentException("HTTP request may not be null"); } assertOpen(); // reset the data receiver - this.datareceiver.reset(params); - return readResponse(params); + this.datareceiver.reset(request.getParams()); + return readResponse(request); } - public HttpResponse receiveResponse(final HttpParams params, int timeout) + public HttpResponse receiveResponse(final HttpRequest request, int timeout) throws HttpException, IOException { - if (params == null) { - throw new IllegalArgumentException("HTTP parameters may not be null"); + if (request == null) { + throw new IllegalArgumentException("HTTP request may not be null"); } assertOpen(); // reset the data receiver - this.datareceiver.reset(params); + this.datareceiver.reset(request.getParams()); if (this.datareceiver.isDataAvailable(timeout)) { - return readResponse(params); + return readResponse(request); } else { return null; } @@ -254,12 +254,11 @@ } } - protected HttpResponse readResponse(final HttpParams params) + protected HttpResponse readResponse(final HttpRequest request) throws HttpException, IOException { - this.datareceiver.reset(params); - HttpMutableResponse response = readResponseStatusLine(params); + HttpMutableResponse response = readResponseStatusLine(request.getParams()); readResponseHeaders(response); - if (canResponseHaveBody(response)) { + if (canResponseHaveBody(request, response)) { readResponseBody(response); } return response; @@ -336,7 +335,10 @@ wirelog("<< [\\r][\\n]"); } - protected boolean canResponseHaveBody(final HttpResponse response) { + protected boolean canResponseHaveBody(final HttpRequest request, final HttpResponse response) { + if ("HEAD".equalsIgnoreCase(request.getRequestLine().getMethod())) { + return false; + } int status = response.getStatusLine().getStatusCode(); return status >= HttpStatus.SC_OK && status != HttpStatus.SC_NO_CONTENT