如果有人对USPS交付确认API有任何经验,我真的很感激我能得到的任何见解......
我正在使用PHP和cURL向D.C. API发送XML请求。当我通过cURL发送回复时,我什么都没得到。没有错误响应,没有XML或任何东西。当我通过浏览器发送XML时,我得到一个错误响应,这至少是一个响应。我处于停滞状态,因为我通过浏览器出错的错误(根据他们的支持线)意味着他们的服务器问题正在影响API。但是,我不知道为什么我无法通过cURL得到答案。
答案 0 :(得分:1)
我们正在使用地址验证API和.NET,而不是交付确认和PHP,但也许我可以提供帮助。
您发送邮局的XML应该只是查询字符串的一方,如下所示:
https://servername/ShippingAPITest.dll?API=DeliveryConfirmationV3&XML=<DeliveryConfirmationV3.0Request USERID="username">…….</DeliveryConfirmationV3.0Request>
然后他们就会立即为您提供XML文档。我从未使用过cURL库,但也许您可以检查这是它实际发送的内容。
另外,你被批准了吗?如果没有,那么他们只允许罐装测试响应。其他任何东西都会给你一个错误,即使它在生产服务器上有效。
答案 1 :(得分:0)
我怀疑你的请求结构中有些东西是关闭的(例如,缺少标题),因为XML内容听起来有效(或至少像USPS的服务器正确读取它)。
我们对USPS API的实现使用与fsockopen
的原始TCP / IP连接,其优点是我可以准确确认我们在请求结构中发送的内容:POST /ShippingAPI.dll HTTP/1.0
< / p>
我们在请求中包含的唯一标头是:
User-Agent: (foo)\r\n
Host: (bar)\r\n
Content-Type: text/xml\r\n
Content-Length: strlen($xml)\r\n\r\n
这与您通过cURL发送的内容相符吗?