0

我正在处理一个非常糟糕的 API,需要我发送这个 XML:

<?xml_version string(335) ""1.0" encoding="utf-16"?>
<GetTicketAction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <CompanyName>*name*</CompanyName>
    <IntegrationLoginId>*id*</IntegrationLoginId>
    <IntegrationPassword>*password*</IntegrationPassword>
    <SrServiceRecid>*recordId*</SrServiceRecid>
</GetTicketAction>

通过 POST (as actionString) 发送到不受我控制的服务器。我已经用 JavaScript(不能,交叉脚本)和 CURL(得到“这需要加密错误”)进行了尝试。文档中的任何地方都没有提到加密,它说可以使用“完全信任”在 IE 中使用 JS 来完成。

内容类型application/x-www-form-urlencoded是否有帮助。

有没有办法用 JS 和/或 PHP 发送这个?

4

1 回答 1

0

经过多年痛苦的 API 慢慢让我发疯,我发现它不希望我通过标准 CURL 模式发送 XML

$data = array(
    "actionString" => $xml
);

相反,我要做的是:

$data = 'actionString=<?xml_version string(335) ""1.0" encoding="utf-16"?>
<GetTicketAction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <CompanyName>*name*</CompanyName>
    <IntegrationLoginId>*id*</IntegrationLoginId>
    <IntegrationPassword>*password*</IntegrationPassword>
    <SrServiceRecid>*recordId*</SrServiceRecid>
</GetTicketAction>'

未来的 API 编写者:让这成为一个警告。我真的希望一个疯狂的精神病患者知道这家伙睡在哪里。

于 2012-08-08T12:58:59.167 回答