我對用於批量數據交換的沃爾瑪Marketplace API的POST請求存在問題,希望得到一些幫助。沃爾瑪API POST失敗,出現400錯誤請求(庫存Feed)ARCA
背景: 我已經成功地寫簽名認證程序,並能成功執行GET如獲得產品的命令等。這表明,我認爲驗證簽名的格式正確,和標題(大部分)是正確的。
問題: 我收到一個400錯誤請求響應,請求內容無效。嘗試向Walmarts API提交測試饋送時的響應。我已經讀過這個問題很常見,但我還沒有找到明確解釋實際問題的論壇帖子,或者如何解決這個問題。這裏是我當前的參數:
ARCA ARCA Rest Client For Chrome
網址:
https://marketplace.walmartapis.com/v2/feeds?feedType=inventory
頁眉:
Accept: application/xml
WM_SVC.NAME: Walmart Marketplace
WM_CONSUMER.ID: <Consumer ID>
WM_SEC.AUTH_SIGNATURE: <Good Auth Signature>
WM_QOS.CORRELATION_ID: 15649814651
WM_SEC.TIMESTAMP: <Timestamp>
WM_CONSUMER.CHANNEL.TYPE: <Channel Type>
Content-Type: multipart/form-data
文件附件(而不是原始的有效載荷雖然已經試過)
<?xml version="1.0" encoding="utf-8"?>
<InventoryFeed xmlns="http://walmart.com/">
<InventoryHeader>
<version>1.4</version>
</InventoryHeader>
<inventory>
<sku>KON04418</sku>
<quantity>
<unit>EACH</unit>
<amount>4</amount>
</quantity>
<fulfillmentLagTime>1</fulfillmentLagTime>
</inventory>
</InventoryFeed>
當我採用這個完全相同的XML並在Walmart API Explorer 上測試時,該文件被接受,響應代碼爲200(OK)。
我使用Notepad ++ XML Tools插件驗證了XML符合由Walmart提供的XSD。我已經看到許多關於需要應用邊界的帖子,所以我另外嘗試更改Content-Type,並添加邊界,但在接受請求方面不成功。
任何幫助獲取此請求返回響應代碼200將不勝感激。
最後,一旦這個請求在ARCA中驗證,我將在C#中實現。我已經編寫了所有的代碼,但是對於如何將附件添加到HttpWebRequest與僅提交原始數據流有點模糊。如果可以提供有關差異的任何清晰度,我會再次感謝。