使用bash脚本以XML发送POST查询时遇到困难。通过使用包含特殊格式的XML的POST变量方法functions.php
传递到文件“ input_xml
”,可以调用API函数。
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>
答案 0 :(得分:0)
您可能缺少内容类型参数:
-H 'content-type: application/xml'
答案 1 :(得分:0)
在curl命令手册页上,我看到您必须使用@
将文件原样传递到服务器(作为文件上传)。但是,如果您只想传递内容,则应使用<
符号而不是@
符号
尝试使用<
符号代替@
符号
答案 2 :(得分:0)
问题不切实际,感谢您的帮助。 决定:
卷曲--data-urlencode input_xml@/app/informatica/PMRootDir/prod/log_motiw/input_xml.xml -X POST http://*****/api/file.php