Wget unterstützt derzeit nur x-www-form-urlencodierte Daten. --post-file
dient nicht zum Übertragen von Dateien als Formularanhänge, sondern erwartet Daten mit dem Formular : key=value&otherkey=example
.
--post-data
und --post-file
arbeiten Sie auf die gleiche Weise: Der einzige Unterschied besteht darin, --post-data
dass Sie die Daten in der Befehlszeile angeben können, während --post-file
Sie den Pfad der Datei angeben können, die die zu sendenden Daten enthält.
Hier ist die Dokumentation:
--post-data=string
--post-file=file
Use POST as the method for all HTTP requests and send the specified data
in the request body. --post-data sends string as data, whereas
--post-file sends the contents of file. Other than that, they work in
exactly the same way. In particular, they both expect content of the
form "key1=value1&key2=value2", with percent-encoding for special
characters; the only difference is that one expects its content as a
command-line parameter and the other accepts its content from a file. In
particular, --post-file is not for transmitting files as form
attachments: those must appear as "key=value" data (with appropriate
percent-coding) just like everything else. Wget does not currently
support "multipart/form-data" for transmitting POST data; only
"application/x-www-form-urlencoded". Only one of --post-data and
--post-file should be specified.
Ihr Authentifizierungstoken sollte entweder im Header, im Pfad der URL oder in den Daten selbst angegeben werden. Dies muss irgendwo in der Dokumentation des von Ihnen verwendeten Dienstes angegeben werden. In einer POST-Anforderung müssen Sie wie in einer GET-Anforderung die Daten mithilfe von Schlüsseln und Werten angeben. Auf diese Weise kann der Server mehrere Informationen mit bestimmten Namen empfangen. Ähnlich verhält es sich mit Variablen.
Daher können Sie nicht nur ein magisches Token an den Server senden, sondern auch den Namen des Schlüssels angeben. Wenn der Schlüssel "Token" ist, sollte es sein token=YOUR_TOKEN
.
wget --post-data 'user=foo&password=bar' http://example.com/auth.php
Sie sollten auch in Betracht ziehen, Curl zu verwenden, wenn Sie können, da es einfacher ist, Dateien damit zu senden. Dafür gibt es im Internet viele Beispiele.