如果任何人有任何USPS交付确认API的经验,我将非常感谢任何我能得到的见解…
我正在使用PHP和cURL向D.C.API发送一个XML请求。当我通过cURL发送响应时,我什么也得不到。没有错误响应、没有XML或任何东西。当我通过浏览器发送XML时,我得到一个错误响应,这至少是一个响应。我处于停顿状态,因为我通过浏览器得到的错误(根据他们的支持行)意味着他们的服务器问题正在影响API。然而,我不知道为什么我不能通过cURL得到响应。
发布于 2009-08-19 22:05:03
我们使用的是地址验证API和.NET,而不是交付确认和PHP,但也许我能帮上忙。
您发送给邮局的XML应该是查询字符串的一部分,如下所示:
https://servername/ShippingAPITest.dll?API=DeliveryConfirmationV3&XML=<DeliveryConfirmationV3.0Request USERID="username">…….</DeliveryConfirmationV3.0Request>然后,它们只会立即为您提供一个XML文档。我从未使用过cURL库,但也许您可以检查一下,这就是它实际发送的内容。
还有,你已经被批准了吗?如果不允许,则只允许录制的测试响应。任何其他操作都会给您一个错误,即使它在生产服务器上是有效的。
发布于 2009-08-19 21:28:37
我怀疑您的请求结构中有问题(例如,缺少头部),因为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发送的内容匹配吗?
https://stackoverflow.com/questions/1302668
复制相似问题