この Web サービスへの呼び出しは、端末から呼び出されたときに機能します...
curl -X POST -d @request.xml "http://some web site"
この例では、request.xml は、curl 呼び出しで使用されるデータを含む整形式の xml ステートメントで構成されるファイルです。これは問題なく機能し、サーバーは期待される応答を 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);