通过开机自检将 XML 发送到另一台服务器


Send XML to another server via POST

我正在处理一个非常糟糕的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>

通过开机自检(如actionString)到不受我控制的服务器。 我已经尝试过使用JavaScript(不能,跨脚本)和CURL(得到"这需要加密错误")。 文档中没有提到加密,其中说可以使用"完全信任"在IE中使用JS完成加密。

如果有帮助,则application/x-www-form-urlencoded内容类型。

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

经过许多年的痛苦,这个 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 编写者:让这成为一个警告。 我真的希望一个疯狂的精神病患者知道这个人睡在哪里。