Как отправить запрос с переменной в bash? - PullRequest
0 голосов
/ 03 мая 2019

У меня проблемы с отправкой POST-запроса в XML с использованием bash-скрипта. Вызов функций API осуществляется путем передачи в файл "functions.php" с помощью метода переменной POST input_xml, содержащего специально сформированный XML.

curl  -X POST  -i  -F input_xml=@/app/server/input_xml http://XX.XX.X.X/api/functions.php

Это нормально, если отправлять запрос с помощью специальных утилит, таких как Postman. Но с curl, он дает ответ "Variable input_xml is empty", когда я жду правильного ответа.

Result

HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Date: Fri, 03 May 2019 09:16:51 GMT
Server: Apache
X-Powered-By: PHP/5.4.16
Set-Cookie: PHPSESSID=2cmhd3a0mqf7u330rpbdi3lhd0; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 114
Content-Type: text/html; charset=utf-8

<?xml version="1.0" encoding="utf-8"?><document><result value="2">Variable input_xml is empty.</result></document>

Ответы [ 3 ]

0 голосов
/ 03 мая 2019

На странице руководства команды curl я вижу, что вы должны использовать @, чтобы передать файл как есть на сервер (в качестве загрузки файла).Но если вы хотите передать только содержимое, вы должны использовать символ < вместо @ символ

Попробуйте использовать символ < вместо символа @

0 голосов
/ 14 мая 2019

Вопрос не актуален, спасибо за попытку помочь.решение:

curl --data-urlencode input_xml@/app/informatica/PMRootDir/prod/log_motiw/input_xml.xml -X POST http://*****/api/file.php

0 голосов
/ 03 мая 2019

Возможно, вам не хватает параметра типа контента:

-H 'content-type: application/xml'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...