obtendo o conteúdo de um formulário HTML POST usando TCPSocket
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?
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