javascript - 为什么在终端中使用curl 调用时POST 工作在从I 调用时失败

标签 javascript ios xml curl instruments

从终端调用时,对 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);

最佳答案

尝试将 XML 内容放在引号中;即替换:

    "-d " + loginXML, 

与:

    "-d '" + loginXML + "'", 

在对curl的调用中。如果没有这个,它可能会治疗<?xml作为 -d 的值,以及 XML 的其余部分作为进一步的(无效)参数。

关于javascript - 为什么在终端中使用curl 调用时POST 工作在从I 调用时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18515163/

相关文章:

python - 使用python删除没有子节点的xml节点

javascript - 如何让这个 ghostType jquery 函数做换行符?

javascript - 如何通过单击超链接来选中/取消选中复选框?

ios - 如何让联网的软件意识到自己?

ios - iOS11中的深度链接回调问题

ios - 外部框架的 gitignore 路径

java - MediaPlayer 没有在每个按钮同时单击时播放音频

Android 试图在 eclipse 中运行我的项目并以 xml.out 结束

javascript - css - 有没有办法让 div 与 h1(多行)在同一第二行?

javascript - 将基于回调逻辑的库函数集成到 Promise 链中