通过cURL

时间:2019-08-27 08:46:37

标签: bash curl

我正尝试通过POST将文件作为base64编码的数据发送到Bugzilla REST API,如下所示:

curl -X POST https://www.example.com/rest/bug/$id/attachment -H "Content-Type: application/json" \
-d "{\
\"login\" : \"$username\", \
\"password\" : \"$password\", \
\"ids\" : [ $id ], \
\"summary\" : \"...\", \
\"content_type\" : \"application/gzip\", \
\"data\" : \"$data\"\
}"

我得到的是来自cURL的错误,参数列表太长。大概是因为我要发送的文件($data)超出了外壳程序的最大值(文件为11M)。我在网上看到的最好的解决方法是让cURL使用--data-binary从文件中读取数据。但是由于我需要发送用户名和密码,所以我不想不必将整个文件和它们一起保存在里面。

是否有某种方法可以解决这个最大值,或者有另一种方法可以发送大量数据?我更喜欢本机Linux工具,因为我希望此脚本具有可移植性。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用这样的文件,这是推荐的方法。

curl -i \
    -H 'Accept:application/json' \
    -H 'Authorization:Basic $username:$password' \
    -X POST -d @datafile.txt https://www.example.com/rest/bug/$id/attachment
相关问题