Matthew
Matthew

Reputation: 3650

getting the content from an html form POST using TCPSocket

using the 'gets' method repeatedly on a TCPSocket object, I receive the following output

POST /targetPage.html HTTP/1.1
Host: 127.0.0.1:7125
...
...
...
Keep-Alive: 115
DNT: 1
Connection: keep-alive
Referer: http://127.0.0.1:7125/
Content-Type: application/x-www-form-urlencoded
Content-Length: 45

If I use .gets again everything hangs, how would I get this 'content' of length 45? Can I get this from my TCPSocket object or do I have to use something else?

Upvotes: 0

Views: 790

Answers (2)

Brian Lam
Brian Lam

Reputation: 1

Include the header:

Connection: close

to the header. This will prevent the hanging before actually reading the body of the request.

Upvotes: 0

cam
cam

Reputation: 14222

gets reads a line, so it will block until the connection times out or it reads a newline character. You should use the read method, which reads a given number of bytes (which is very conveniently provided in the Content-Length header).

Upvotes: 2

Related Questions