2009-08-19 41 views
1

如果任何人有与美国邮政发货确认API的经验,我会很感激我使用PHP和卷曲发送XML请求到DC API的任何见解,我可以得到...USPS API混乱

。当我通过cURL发送回复时,我什么都没有收到。没有错误响应,没有XML或任何东西。当我通过浏览器发送XML时,出现错误响应,至少是一个响应。我处于停滞状态,因为我通过浏览器通过浏览器(根据他们的支持线)得到的错误意味着他们的服务器问题正在影响API。但是,我不知道为什么我无法通过cURL来获得这种回应。

回答

1

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

您发送邮局的XML应该只是查询字符串像这样的聚会:

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

然后,他们只是为你服务了一个XML文档的右后卫。我从来没有使用cURL库,但也许你可以检查这是它实际发送的。

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

+0

我现在只使用测试服务器,这是我刚刚尝试获取固定响应的错误。我已经证实了USPS的支持,只要试图让测试运行正常,我的帐户就没有任何问题。 – 2009-08-20 16:11:56

0

我怀疑是因为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发送的内容?