2016-11-18 2 views
0

мне нужно GET данных от службы. Я передаю ему кучу идентификаторов.локон получить запрос список аргументов слишком длинный

Идентификаторы хранятся в файле разделенных запятыми

Пример: кошка id_file

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

Есть тысячи идентификаторов в файле.

В моем сценарии оболочки я использую

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 

Завиток команда завершается с ошибкой "/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

Вы можете выбрать, чтобы прочитать все варианты и URL-адрес из «конфигурационного файла» вместо того, чтобы из используя -K, что полностью устранит ограничения длины. Затем вы также можете сделать этот «файл конфигурации» прочитанным из stdin, если хотите, поэтому, когда вы пишете скрипт, на самом деле вам не нужно создавать временный файл для этой цели.

Смотрите также раздел в свободной завитка книге config file.

+0

Спасибо Даниила, который работал – donny

Смежные вопросы