【问题标题】:USPS API confusionUSPS API 混淆
【发布时间】:2009-08-19 21:18:02
【问题描述】:

如果有人对 USPS 递送确认 API 有任何经验,我将非常感谢我能获得的任何见解...

我正在使用 PHP 和 cURL 向 D.C. API 发送 XML 请求。当我通过 cURL 发送响应时,我什么也得不到。没有错误响应、没有 XML 或任何东西。当我通过浏览器发送 XML 时,我得到一个错误响应,这至少是一个响应。我处于停滞状态,因为我通过浏览器获得的错误明显(根据他们的支持线)意味着他们的服务器问题正在影响 API。但是,我不知道为什么我无法通过 cURL 获得该响应。

【问题讨论】:

    标签: php curl usps


    【解决方案1】:

    我们使用的是地址验证 API 和 .NET,而不是交付确认和 PHP,但也许我可以提供帮助。

    您发送给邮局的 XML 应该只是查询字符串的一部分,如下所示:

    https://servername/ShippingAPITest.dll?API=DeliveryConfirmationV3&XML=<DeliveryConfirmationV3.0Request USERID="username">…….</DeliveryConfirmationV3.0Request>
    

    然后他们会立即为您提供一个 XML 文档。我从未使用过 cURL 库,但也许您可以检查一下它实际发送的是什么。

    另外,你被批准了吗?如果没有,那么他们只允许预设测试响应。其他任何事情都会给您一个错误,即使它在生产服务器上有效。

    【讨论】:

    • 我现在只使用测试服务器,这是我试图取回预设响应时遇到的错误。我已通过 USPS 支持确认,就尝试让测试运行正常而言,我的帐户没有任何问题。
    【解决方案2】:

    我怀疑您的请求结构中有问题(例如,缺少标头),因为 XML 内容听起来像是有效的(或者至少像 USPS 的服务器正确读取它一样)。

    我们的 USPS API 实现使用带有 fsockopen 的原始 TCP/IP 连接,其优点是我可以准确地确认我们在请求结构中发送的内容:POST /ShippingAPI.dll HTTP/1.0

    我们在请求中包含的唯一标头是:

    User-Agent: (foo)\r\n
    Host: (bar)\r\n
    Content-Type: text/xml\r\n
    Content-Length: strlen($xml)\r\n\r\n
    

    这是否与您通过 cURL 发送的内容相匹配?

    【讨论】:

      猜你喜欢
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多