Wie kann ich mit Wget einen HTTP-PUT durchführen?

37

Ich versuche, mit Wget auf eine RESTful- Schnittstelle zuzugreifen , kann jedoch nicht herausfinden, wie HTTP PUT mit Wget ausgeführt wird. Wie kann ich es tun? Oder ist das nicht möglich?

Jonas
quelle

Antworten:

23

Wget kann PUT nicht machen. Verwenden Sie stattdessen cURL mit -T.

Ignacio Vazquez-Abrams
quelle
Es gibt auch ein Wput-Dienstprogramm , das auf FTP beschränkt zu sein scheint.
Quack Quijote
10
Wget kann jetzt PUT mit --method ausführen.
John Henry
52
wget --method=PUT --body-data=<STRING>

Dies ist etwas spät, aber irgendwann nach dem ursprünglichen Beitrag wurde die Option "--method" hinzugefügt. Ich bin nicht sicher, wann es hinzugefügt wurde, aber siehe https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=684189#24 für Details.

John Henry
quelle
5
Dies sollte als Antwort akzeptiert werden.
Vanuan
3
Sollte Antwort im Jahr 2014, 2016 oder wann immer akzeptiert werden. - Methode param war nicht in wget im Jahr 2010 Erfolg :(
Bernhard Döbler
4
Nicht in der Box beschäftigt
Dmitry Minkovsky
Scheint bei Verwendung mit Authentifizierung nicht zu funktionieren. Ich habe es wget --method=PUTmit der Digest-Zugriffsauthentifizierung versucht, aber wget führt die Authentifizierungsprozedur nicht wie bei der Standard-GET-Anforderung aus.
Joe
- Methode noch nicht in Centos 7 verfügbar.
David V.
21

Da es sich um REST - Schnittstelle, ich glaube , Sie verwenden wollen würde curlmit -X PUT, wie folgt aus :

curl -i -X PUT http://www.example.tld/rest/updateEntity/1234?active=false

Oder wenn Sie Daten aus einer Datei "posten" müssen, wie z. B. eine XML-Datei:

curl -i -X PUT -H "Content-Type: application/xml; charset=utf-8" -d @"/tmp/some-file.xml" http://www.example.tld/rest/updateEntity
Sverre Marvik
quelle
6

Bei mir hat folgendes geklappt:

curl -T <file-path> <url>

Aus irgendeinem Grund, als ich es verfolgte, passierte nichts (auch kein Fehler):

curl -X PUT -d <file-path> <url>         (did not work)
hznut
quelle
1
-dSendet die Daten, die Sie in der Befehlszeile eingegeben haben, und versucht, den Dateipfad als Text einzugeben.
Che
4

Wenn Sie eine Datei nicht als Daten verwenden möchten, können Sie Folgendes tun.

curl -X PUT -d "something=blabla&somethingelse=blaha" http://www.example.com
Fredrik
quelle