получение содержимого из HTML-формы POST с использованием TCPSocket - PullRequest
0 голосов
/ 18 мая 2011

с помощью метода 'gets' для объекта TCPSocket, я получаю следующий вывод

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 ]

2 голосов
/ 18 мая 2011

gets читает строку, поэтому она будет блокироваться до истечения времени ожидания соединения или до чтения символа новой строки. Вам следует использовать метод read, который считывает заданное количество байтов (что очень удобно указано в заголовке Content-Length).

0 голосов
/ 03 июня 2013

Включить заголовок:

Соединение: закрыть

до заголовка.Это предотвратит зависание перед тем, как фактически прочитать тело запроса.

...