Pergunta

usando o método 'gets' repetidamente em um objeto TCPSocket, recebo a seguinte saída

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

Se eu usar .gets novamente, tudo trava, como eu conseguiria esse 'conteúdo' de comprimento 45?Posso obter isso do meu objeto TCPSocket ou preciso usar outra coisa?

Foi útil?

Solução

gets lê uma linha, portanto será bloqueada até que a conexão expire ou leia um caractere de nova linha.Você deve usar o read método, que lê um determinado número de bytes (que é convenientemente fornecido no cabeçalho Content-Length).

Outras dicas

Incluir o cabeçalho:

Conexão:fechar

para o cabeçalho.Isso evitará o travamento antes de realmente ler o corpo da solicitação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top