Frage

Ich versuche, eine HTML-POST (in einer Datei) auf eine URL mit Wget wie folgt aus:

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

Die URL, an die die HTML geschrieben wird, ist eine Web-Anwendung Endpunktes mit ASP.NET implementiert. Der Server antwortet mit einem 100 (weiter) Antwort und Wget einfach stoppt tot in seinem Titel, anstatt weiterhin mit dem real Antwort, dass sollte folgt nächste.

Kann wget irgendwie eine 100 (weiter) als Reaktion auf hanlde gesagt werden, oder ist dies eine bekannte Einschränkung des Werkzeugs?

Weitere Informationen:

  • Ich habe bemerkt, dass Wget nie sendet die Expect: 100-Continue Header, so technisch sollte der Server nicht Ausgabe 100 (weiter) Antwort.

    UPDATE: Sieht aus wie dies möglich ist, per §8.2.3 von RFC 2616 (Hypertext Transfer Protocol - HTTP / 1.1) :

      

    Ein Ursprungs-Server, sollten Sie nicht 100 (weiter) Antwort senden, wenn   die Anforderungsnachricht ein nicht enthalten Erwarten Anfrage-Header   Feld mit der Erwartung, „100-Continue“ und darf nicht zu einem schicken   100 (weiter) Antwort, wenn eine solche Anforderung von einer HTTP kommt / 1.0   (Oder früher) Client. Es gibt eine Ausnahme von dieser Regel: für   Kompatibilität mit RFC 2068, Ein Server kann ein 100 (weiter) senden   Status als Reaktion auf ein HTTP / 1.1 PUT oder POST-Anfrage, das tut   nicht gehört 100- mit den“Anfrage-Header-Feld Expect   weiterhin“Erwartung. Diese Ausnahme, die zum Ziel hat,   keine Client-Verarbeitungsverzögerungen, die mit einem minimieren   nicht angemeldete Warten auf 100 (weiter) Status, gelten nur für   HTTP / 1.1-Anforderungen und nicht auf Anfragen mit einem anderen HTTP-   Versionswert.

  • cURL hat keine Probleme mit einer solchen Transaktion. Es senden Sie eine Expect: 100-Continue Kopf und setzte sich mit 100 (weiter) Antwort auf den realen.

Für weitere Informationen, hier ist der vollständige Debug-Trace der Transaktion aus dem Aufruf oben gezeigt:

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.
War es hilfreich?

Lösung

ich auf dem Quellcode sah für Windows wget, und soweit ich die Debug-Ausgabe von dem allgemeinen Fehlerzustand kommt sagen kann, wenn wget nicht richtig um die Antwort zu analysieren. Sieht aus wie das nur eine Einschränkung von wget ist, so dass Sie wahrscheinlich curl oder eine andere Methode verwenden werden müssen, um zu vermeiden dieses Problem zu begegnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top