2016-11-18 1768 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