Need help with Net::HTTP Post

Hi,

I am trying do a Net::HTTP post, the post returns with a 201 Created but
still the thread executing the script is stuck until Read Timeout
occurs. Need help to understand how to comeout of the Post when a
response is obtained. The code snippet I am using is as below

fd= File.open(“test.xml”,“rb”)
h = Net::HTTP.new("", 8080)
h.post(’/test/test1’,fd.read)

Thanks for the help in advance

Regards,
Sudhi

Sudhi K. wrote:

Hi,

I am trying do a Net::HTTP post, the post returns with a 201 Created but
still the thread executing the script is stuck until Read Timeout
occurs. Need help to understand how to comeout of the Post when a
response is obtained. The code snippet I am using is as below

fd= File.open(“test.xml”,“rb”)
h = Net::HTTP.new("", 8080)
h.post(’/test/test1’,fd.read)

How do you know the post returns with a 201, if it isn’t getting past
the h.post line?

Best way to find out what’s going on is with tcpdump or wireshark.

It’s possible that there’s some HTTP/1.1 nastiness going on, e.g. one
side thinks the connection should remain open whilst the other thinks it
should be closed, possibly combined with a missing Content-Length:
header from one side or the other.

Brian C. wrote:

Sudhi K. wrote:

Hi,

I am trying do a Net::HTTP post, the post returns with a 201 Created but
still the thread executing the script is stuck until Read Timeout
occurs. Need help to understand how to comeout of the Post when a
response is obtained. The code snippet I am using is as below

fd= File.open(“test.xml”,“rb”)
h = Net::HTTP.new("", 8080)
h.post(’/test/test1’,fd.read)

How do you know the post returns with a 201, if it isn’t getting past
the h.post line?

Best way to find out what’s going on is with tcpdump or wireshark.

It’s possible that there’s some HTTP/1.1 nastiness going on, e.g. one
side thinks the connection should remain open whilst the other thinks it
should be closed, possibly combined with a missing Content-Length:
header from one side or the other.

Hi,
That is exactly what I had done, Wireshark shows that the response is
obtained as 201 created but then the script still continues to wait…

Thanks,
Sudhi

Sudhi K. wrote:

That is exactly what I had done, Wireshark shows that the response is
obtained as 201 created but then the script still continues to wait…

OK, so post the full, exact headers of both the request and the
response.

If the response contains a Content-Length: header, check that the
response body has exactly that many bytes (counting after the \r\n\r\n
which terminates the headers)