使用Wget发布请求?


73

我想使用wget将图片(使用身份验证令牌“ AUTH_1624582364932749DFHDD”)上传到远程服务器到“ test”文件夹。

该命令不起作用(授权失败),我想确保它与语法无关:

wget --post-file=nature.jpg http://ipadress:8080/v1/AUTH_test/test/ --post-data="AUTH_1624582364932749DFHDD"

有什么建议?

Answers:


98

Wget当前仅支持x-www-form-urlencoded数据。--post-file不是用于将文件作为表单附件传输,而是需要格式为的数据key=value&otherkey=example

--post-data--post-file以相同的方式工作:唯一的区别是,--post-data您可以在命令行中指定数据,而--post-file允许您指定包含要发送的数据的文件的路径。

这里是文档:

 --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.

关于身份验证令牌,应该在标头,URL路径或数据本身中提供它。必须在您使用的服务的文档中的某处指出。与GET请求一样,在POST请求中,必须使用键和值指定数据。这样,服务器将能够接收具有特定名称的多个信息。变量也是如此。

因此,您不仅可以将魔术令牌发送到服务器,还需要指定密钥的名称。如果密钥是“令牌”,则应该是token=YOUR_TOKEN

wget --post-data 'user=foo&password=bar' http://example.com/auth.php

另外,如果可以的话,应该考虑使用curl,因为使用它可以更轻松地发送文件。互联网上有很多例子。


在这种情况下,如何发送身份验证令牌?
戴迪

如果它是基本的html表单,您将如何命名包含令牌的输入?因为那应该是:token = AUTH_1624582364932749DFHDD
MaximeChéramy13年

我要说的是@Hasturkun:D
MaximeChéramy13年

不,这不是HTML表单,我想在服务器上上传图片“ nature.jpg”,该服务器需要令牌“ AUTH _ *******”来标识用户,因此我必须发送文件和带有POST请求的令牌(字符串)
Dady 2013年

6
它的最终结论是:curl -v -H'X-Auth-Token:AUTH_tk8c1eecae98e845159cebf69f06bb10f2'ipadress :8080 / v1 / AUTH_test / test -T nature.jpg
Dady
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.