Guru Prasad P.S wrote:
HttpClient 4 :
Response of first multipart post request is :
[org.apache.http.impl.conn.DefaultClientConnection] Receiving response: HTTP/1.1 200
[org.apache.http.headers] << HTTP/1.1 200
[org.apache.http.headers] << Date: Tue, 12 Jan 2010 16:01:47 GMT
[org.apache.http.headers] << Content-type: text/html; charset=utf-8
[org.apache.http.headers] << Content-length: 199
[org.apache.http.headers] << Last-modified: Tue, 12 Jan 2010 16:01:47 GMT
[org.apache.http.headers] << Pragma: no-cache
[org.apache.http.headers] << Expires: 0
[org.apache.http.headers] << Cache-Control: no-cache
[org.apache.http.impl.client.DefaultHttpClient] Connection can be kept alive
indefinitely
[org.apache.http.wire] << "<html><head><script>[\n]"
[org.apache.http.wire] << "function color(s) { if (s) document.bgColor=s }[\n]"
[org.apache.http.wire] << "var errno=27[\n]"
[org.apache.http.wire] << "var errstr='File too large'[\n]"
[org.apache.http.wire] << "var size=1253000[\n]"
[org.apache.http.wire] << "var uid=0[\n]"
[org.apache.http.wire] << "if (parent.attachCB) parent.attachCB()[\n]"
[org.apache.http.wire] << "</script>[\n]"
[org.apache.http.wire] << "</head>[\n]"
[org.apache.http.wire] << "</html>[\n]"
[org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager] Released
connection is reusable.
Immediate next multipart post request gives following exception: ( for get
request: org.apache.http.NoHttpResponseException: The target server failed to
respond ------> Request is not reaching server)
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at
org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:106)
at
org.apache.http.impl.io.AbstractSessionOutputBuffer.flush(AbstractSessionOutputBuffer.java:113)
at
org.apache.http.impl.conn.LoggingSessionOutputBuffer.flush(LoggingSessionOutputBuffer.java:85)
at
org.apache.http.impl.AbstractHttpClientConnection.doFlush(AbstractHttpClientConnection.java:260)
at
org.apache.http.impl.SocketHttpClientConnection.close(SocketHttpClientConnection.java:248)
at
org.apache.http.impl.conn.DefaultClientConnection.close(DefaultClientConnection.java:154)
at
org.apache.http.impl.conn.AbstractPooledConnAdapter.close(AbstractPooledConnAdapter.java:148)
at
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:130)
at
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:483)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:597)
and
[org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager] Released connection is not reusable.
This happens only when server gives error message. For small attachment there
is no issue.
Verified Content-length header value and total bytes in response, both are same.
Is there any use case where connection may be corrupted because of first
request and use of same connection for next request gives undesired results.
No issues with httpclient 3.x for same requests.
--Prasad
The target server closed the connection, even though it was meant to
keep it alive (by responding with a HTTP/1.1 message containing no
'Connection: close' header). This is a server side bug.
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]