当从终端调用时,此对 Web 服务的调用有效...
curl -X POST -d @request.xml "http://some web site"
在此示例中,request.xml 是一个由格式良好的 xml 语句组成的文件,其中包含 curl 调用使用的数据。这工作得很好,服务器将预期的响应返回给 POST。
这是 xml 语句(进行了一些更改以隐藏专有值)
<account token="999999999999999999999" username="test@emailaccount.com" password="111111122222233333334444455555"><login ver="3.0.7" mdmac="02:00:00:00:00:00" os="7.0" lan="en" bndl="APPL" mod="iPhone"/></account>
当我尝试使用以下 java 脚本命令从 Instruments 内部调用相同的 Web 服务时,服务器以无效的参数语句响应。
var host = target.host();
var loginXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<account token=\"999999999999999999999\" username=\"test@emailaccount.com\" password=\"111111122222233333334444455555\">
<login ver=\"3.0.7\" mdmac=\"02:00:00:00:00:00\" os=\"7.0\" lan=\"en\" bndl=\"APPL\" mod=\"iPhone\"/>
</account>";
var xmlLength = loginXML.length + 1;
var result = host.performTaskWithPathArgumentsTimeout("/usr/bin/curl",
["-X POST",
"-d " + loginXML,
// "-v",
"http://some web site"],
5);
UIALogger.logDebug("exitCode: " + result.exitCode);
UIALogger.logDebug("stdout: " + result.stdout);
UIALogger.logDebug("stderr: " + result.stderr);