2017-02-10 1 views
2

Я пытаюсь добавить Content-ID: до тех пор, как некоторые другие пользовательские заголовки, используя завиток и командной строки только (заголовки не должны поступать из файла), и они должны быть разными для каждого приложения в одном запросе. Но в настоящее время я могу указать только тип содержимого (ов) на файл (он задокументирован). Я не нашел примеров документации для своей задачи.локон: для каждого файла дополнительные заголовки из CLI (для многочастного POST, SOAP и т.д.)

я использую что-то вроде:

curl -X POST --form "[email protected]" --form "[email protected]" http://host:port 

И результат будет следующий (реконструированную с Wireshark). Существует не ТЕСТ слов по умолчанию (см. Ниже).

POST/HTTP/1.1 
Host: host:port 
User-Agent: curl/7.52.1 
Accept: */* 
Content-Length: 408 
Expect: 100-continue 
Content-Type: multipart/form-data; boundary=------------------------d7a9fdc4812ebc3b 

[SERVER REPLY:] HTTP/1.1 100 Continue 

--------------------------d7a9fdc4812ebc3b 
Content-Disposition: form-data; name="file"; filename="test1.txt" 
Content-Type: text/plain 
TEST <-- This is from _curl_ C code bruteforce. Here should be "Content-ID:from_command_line_for_file_1" 

CONTENTS_OF_test1.txt 
line2 
line3 

--------------------------d7a9fdc4812ebc3b 
Content-Disposition: form-data; name="file"; filename="test2.jpg" 
Content-Type: image/jpeg 
TEST <-- This is from _curl_ C code bruteforce. Here should be "Content-ID:from_command_line_for_file_2" 

CONTENTS_OF_test2.jpg 
line2 
line3 

--------------------------d7a9fdc4812ebc3b-- 

Чтобы увидеть, если это возможно с завитка, я нырнуть в его исходный код. Существует строка 'formdata.c' ~ 1290, код для моей точно задачи. Но как активировать этот код? Чтобы проверить, действительно ли этот код предназначен для обработки каждого файла, я настойчиво его проверяю, и он работает (см. Выше для слов «ТЕСТ»).

 curList = file->contentheader; 
     while(curList) { 
    /* Process the additional headers specified for this form */ 
    result = AddFormDataf(&form, &size, "\r\n%s", curList->data); 
    if(result) 
     break; 
    curList = curList->next; 
     } 
// my bruteforce added line for test: 
     result = AddFormDataf(&form, &size, "\r\n%s", "TEST"); 

Так это выглядит, как моя задача уже поддерживается локон, но как его использовать, и какие параметры я должен пройти через командную строку (не с/из некоторого файла)?

человек завиток не предлагает слишком много об этом, но он говорит: «См. Дополнительные примеры и подробности в РУКОВОДСТВЕ», но я не могу найти там что-то полезное.

curl 7.52.1

Спасибо.

ответ

3

Получаю ответ на список рассылки curl. curl Инструмент CLI использует libcurl библиотека. 'formdata.c' - это библиотека. И он уже содержит весь необходимый код. Но, к сожалению, curl инструмент не использует эту функцию (которая находится под вопросом) в библиотеке. Именно по этой причине упомянутая часть кода не может быть запущена вообще (с помощью инструмента CLI).

Так что мне не повезло, но знаю, что это невозможно, лучше, чем вообще не знаю. BTW, я затем попытаюсь изменить curl Исходный код инструмента CLI, но обнаружил, что это далеко не просто для меня. Любые предложения приветствуются. Thanks

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