2016-07-14 3 views
2

Я пытаюсь отправить запрос POST на сервер и хотел бы, чтобы данные сообщения были в файле. Страница ищет параметр number. В настоящее время у меня есть эта команда:cURL Опубликовать данные из файла

curl -i -X POST 127.0.0.1:80/page.php -H "Content-Type: text/xml" --data-binary "@postdata.txt" 

Проблема в том, что она не публикует данные. Это то, что находится внутри postdata.txt:

number=100&other=data 
+0

У меня нет проблемы с запуском вашей точной команды, проводки https://requestb.in/1b9c05k1?inspect. Возможно, есть что-то в page.php, что заставляет вас не видеть, как это происходит должным образом? Редактировать: изображение результата requestbin в случае истечения срока действия ссылки: http://imgur.com/buB1kN0 –

+0

Почему вы не используете '-d 'number = 100 & other = data'' –

ответ

2

То, что вы пытаетесь сделать, должно работать. Вероятно, проблема заключается в том, что вы устанавливаете Content-Type на text/xml, и вы не отправляете xml, вы отправляете application/x-www-form-urlencoded данных. Кроме того, нет необходимости использовать -X, так как вы пытаетесь сделать стандартную запись.

Попробуйте удалить Content-Type и пусть локон автоматически установить его:

curl -i --data-binary @postdata.txt http://127.0.0.1/page.php 

Вы также можете использовать команду замены оболочки, но это не обязательно:

curl --data-binary $(cat postdata.txt) http://127.0.0.1/page.php 
Смежные вопросы