Body part of PUT request is not retransmitted in streaming mode of
HttpURLConnection although both, header and body, are expected to be
retransmitted in some data loss situation(e.g. a response from server is not
This issue of not retransmitting body part of PUT request in
HttpURLConnection causes the following dead lock situation between HTTP
client and server.
(1) HTTP client sends a PUT request with body in streaming mode to HTTP
(2) HTTP client fails to receive the response then retransmits a PUT request
which contains only header to the server(This is the issue)
then wait a response from the server.
(4) HTTP server receives the PUT request which contains only header and
continue waiting the body to come in.
Then, HTTP client and server get in dead lock. That is, the client is waiting
a response from the server,
but the server is waiting the body from the client.