2009-08-19 146 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發送的內容?