(Следующая история предыстория, вы можете перейти к «Вопрос:», если хотите)
Есть веб-страница для одного из моих курсов, которая принимает вводимый текст (ожидается, что это код Python), а затем дает некоторый токенизированный ответ. Он предназначен для использования в качестве ссылки для лексеров Python, которые мы пишем. Я пытаюсь автоматизировать процесс тестирования и проверить свой код, не открывая браузер, не копируя текст туда-сюда и т. Д. Итак, вот что я пытаюсь сделать:
У меня есть пример файла Python с именем «x.py», и я хочу отправить его на сервер, как если бы я заполнил эту форму. Я пробовал:
curl --data-urlencode "file=@x.py" http://matt.might.net/apps/pylex/pylex.php
Но, к сожалению, это не работает правильно, потому что, очевидно, "@x.py"
публикуется как содержимое моего файла (то "file=@x.py"
есть то, что публикуется, а не "file=<contents-of-x.py>"
). Я пробовал --form
и , --data
но те , которые не работали либо.
Вопрос: В
частности, если у меня есть файл с содержимым, не закодированным в URL, и содержимое этого файла должно быть частью процедуры POST и связано с определенным именем (в данном случае, file
), каков правильный способ выполнить это ?
"file=`cat x.py`"
Ответы:
То, что вы хотите
"file@x.py"
(нет=
).Из
curl
справочной страницы :источник
Я оставлю ответ qmega как принятый, но я также оставлю ответ, который оставил в комментарии, для удобства чтения. Еще один способ сделать это - просто указать
"file=`cat x.py`"
. Для полной команды это будет:источник