CURL не может отправить данные поста более 1024 байтов через командную строку - PullRequest
1 голос
/ 10 октября 2009

Я пытаюсь опубликовать большой XML-файл по веб-адресу, используя curl в сценарии оболочки. Я публикую данные с помощью опции '-F' в curl. Всякий раз, когда я публикую файл, размер которого превышает 1024 байта, файл обрезается и отправляет только первые 1024. Я пытался изменить заголовок «Expect:», как предложено в другом решении для PHP Curl, но он не работает. *

Вот командная строка, которую я использую:

curl -F "xml=</fileoutput.xml" http://servername/page.html

Как я уже говорил ранее, я пробовал оба -H "Ожидайте:" -H "Ожидать: 100-продолжить"

Ни одна из них не работает. Пожалуйста, помогите!

Ответы [ 4 ]

4 голосов
/ 10 октября 2009

Чтобы разместить файл, вы должны использовать @ перед URL. Я думаю, что Трубадур уже упоминал об этом, но это должно быть в кавычках как:

 curl -F "xml=@http://servername/page.xml"

Также обратите внимание, что я изменил его на .xml, поскольку вы сказали, что пытаетесь опубликовать большой XML-файл, а не большой HTML-файл.

4 голосов
/ 10 октября 2009

Согласно man-странице, опция -F делает POST, поэтому не похоже, что это проблема GET. На странице man также написано, что для префикса файла следует использовать @, чтобы использовать файл в качестве содержимого, поэтому, возможно, команда должна быть

curl -F xml=@some_file http://servername/page.html
1 голос
/ 10 октября 2009

Возможно ли, что сам веб-адрес имеет это ограничение? Вы пытались опубликовать тот же файл вручную через веб-браузер?

0 голосов
/ 10 октября 2009

Я думаю, вам нужно использовать -d вместо -f?

-d, кажется, публикует данные. Как Саб указал, что максимальный размер GET очень мал, вы должны опубликовать файл, и для этого вы должны использовать -d вместо -f.

Смотрите здесь.

...