2016-11-18 97 views
0

我需要GET来自服务的数据。我传递了一堆ID到它。curl获取请求参数列表太长

的ID被存储在由逗号

实施例分开一个文件:cat id_file

1,2,3,4,5,6,7,8,9,10,.....10000. 

有成千上万的文件中的id。

在我的shell脚本我用

id_list=$(cat id_file) 

curl -H "Authorization: Bearer $token" -X GET "http://prk.xyx.com/tpt/abc/v2/dce_info?Id=$id_list&mpId=0" > op_data.json 

curl命令有错误"/usr/bin/curl: Argument list too long".

失败,现在,在卷曲POST我们可以指定@filename。我们可以为获取请求做些什么吗?

回答

0

如果可能的话,您可以将您的数据为JSON,使您的请求加载一些如何更方便,而整个阵列

curl -X POST -H "Content-Type: application/json" -d @- "$HOST" <<CURL_DATA 
{ "data": "$DATA" } 
CURL_DATA 
+0

感谢您的输入,但我面临的问题GET不是POST – donny

4

您可以选择从“配置文件”,而不是从阅读所有的选项和网址命令行使用-K,这将完全取消长度限制。如果你愿意的话,你也可以从stdin中读取这个“配置文件”,所以当你编写一个脚本时,你并不需要为此创建一个临时文件。

另请参阅免费卷曲书中的config file部分。

+0

谢谢丹尼尔,那工作 – donny