使用TCPSocket从html表单POST获取内容

时间:2011-05-18 19:35:56

标签: ruby sockets post tcpsocket

在TCPSocket对象上重复使用'gets'方法,我收到以下输出

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

如果我再次使用.gets,那么我将如何获得长度为45的“内容”?我可以从TCPSocket对象中获取此信息,还是必须使用其他内容?

2 个答案:

答案 0 :(得分:2)

gets读取一行,因此它将一直阻塞,直到连接超时或读取换行符。您应该使用read方法,该方法读取给定的字节数(在Content-Length标头中非常方便地提供)。

答案 1 :(得分:0)

包括标题:

连接:关闭

到标题。这样可以防止在实际读取请求正文之前挂起。