我在向 Walmart Marketplace API 发送批量数据交换的 POST 请求时遇到问题,希望能得到一些帮助。
背景: 我已经成功编写了签名验证例程,并且可以成功执行 GET 命令,例如获取产品等。这向我表明,验证签名的格式正确,并且标头(大部分)是正确的。
问题: 我收到 400 Bad Request 响应,请求内容无效。尝试向 Walmarts API 提交测试提要时的响应。我读过这个问题很常见,但是我还没有找到任何论坛帖子清楚地解释了实际问题,或者如何解决它。这是我当前的参数:
适用于 Chrome 的ARCA ARCA Rest 客户端
网址:
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 与仅提交原始数据流之间存在一些模糊性。如果可以再次说明差异,我将不胜感激。