Pergunta

Eu estou tentando deixar um HTML (contido em um arquivo) para um URL usando Wget como este:

wget -O- --debug
     --header=Content-Type:text/html
     --post-file=index.html
     http://localhost/www/encoder.ashx

O URL para o qual o HTML está sendo postado é um ponto final aplicativo Web implementados usando ASP.NET. As respostas do servidor com um 100 (Continua) resposta e Wget simplesmente pára mortos em suas faixas em vez de continuar com o real resposta que deve siga seguinte.

Can Wget ser de alguma forma dito para hanlde um (Continuar) resposta 100 ou isso é alguma limitação conhecida da ferramenta?

Notas:

  • notei que Wget nunca envia o cabeçalho assim Expect: 100-Continue tecnicamente o servidor não deve ser emissão de uma resposta 100 (Continuar).

    UPDATE: Looks como este é possível, como por §8.2.3 de RFC 2616 (Hypertext Transfer Protocol - HTTP / 1.1) :

    Um servidor de origem não devem enviar um (Continuar) resposta 100 se a mensagem de pedido não inclui uma esperar de cabeçalho de solicitação campo com o "100-continue" expectativa, e não deve enviar um 100 (Continua) se esse pedido de resposta um vem de um HTTP / 1.0 cliente (ou anterior). Há uma exceção a esta regra: para compatibilidade com RFC 2068, Um servidor pode enviar um 100 (Continuar) estado em resposta a um HTTP / 1.1 solicitação PUT ou POST que faz não inclui um esperam campo de cabeçalho de solicitação com o "100- continuar" expectativa. Esta excepção, cuja finalidade é para minimizar os atrasos de processamento cliente associados a um espera não declarado para o status 100 (Continue), aplica-se apenas a HTTP / 1.1 pedidos, e não às solicitações com qualquer outro em HTTP valor da versão.

  • cURL não tem problemas com tal transação a. Ele enviar um cabeçalho Expect: 100-Continue e continuou com 100 de resposta (Continua) para o real.

Para mais informações, aqui é o rastreamento de depuração integral da operação da chamada mostrado acima:

Setting --post-file (postfile) to index.html
Setting --header (header) to Content-Type:text/html
DEBUG output created by Wget 1.10 on Windows.

--13:29:17--  http://localhost/www/encoder.ashx
           => `-'
Resolving localhost... seconds 0.00, 127.0.0.1
Caching localhost => 127.0.0.1
Connecting to localhost|127.0.0.1|:80... seconds 0.00, connected.
Created socket 296.
Releasing 0x01621a10 (new refcount 1).

---request begin---
POST /www/encoder.ashx HTTP/1.0
User-Agent: Wget/1.10
Accept: */*
Host: localhost
Connection: Keep-Alive
Content-Type: text/html
Content-Length: 30984

---request end---
[writing POST file index.html ... done]
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 100 Continue
Server: ASP.NET Development Server/9.0.0.0
Date: Wed, 24 Sep 2008 11:29:17 GMT
Content-Length: 0

---response end---
100 Continue
Closed fd 296
13:29:17 ERROR 100: Continue.
Foi útil?

Solução

Eu olhei para o código-fonte para wget para Windows, e, tanto quanto eu posso dizer a saída de depuração está vindo da condição de erro genérico quando wget não consegue analisar a resposta adequada. Parece que este é apenas uma limitação do wget, então você provavelmente terá que usar onda ou algum outro método para evitar a ocorrência deste problema.

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