我试图提交SubmitFeed
请求,亚马逊的市场,但是当我提出我得到以下错误请求:问题计算MD5哈希饲料
the Content-MD5 HTTP header you passed for your feed did not match the Content-MD5 we calculated for your feed
所以我测试的要求上Amazon Marketplace Scratchpad。我在我的XML添加到身体和头部,并生成以下MD5哈希:
1db3b177e743dc8c0df4dc9eb5c1cbcf
但也有一个Content-MD5 (Base64)
头,这个值:
HbOxd+dD3IwN9NyetcHLzw==
,它似乎是实际发送给Amazon的值 MWS作为Content-MD5
HTTP标头,而不是原始MD5哈希值。
我检查了我的PHP脚本,它正确地生成原始MD5哈希,就像我在md5
函数(md5($xml)
)中包装我的XML字符串时一样,得到与Amazon生成的相同的原始MD5哈希。但是如果我在base64_encode
函数中包装那,我会得到一个与Amazon列出的Content-MD5(Base64)值完全不同的值。
到目前为止,我已经试过包装在base64_encode
功能如下:
- 的原始XML字符串
- 原始XML字符串的MD5哈希
但没有得到与Amazon的Content-MD5(Base64)值相同的值。
那么到底什么是 Amazon Base64编码才能获得该值?我试过解码这个值,但是只是随机出现了一些似乎是编码问题的字符,所以我看不到原始字符串,即亚马逊的编码指向正确的方向。
任何指导,将不胜感激。
感谢您的支持!尽管我使用java,但是关于在原始数据上执行base64而不是md5字符串的信息非常有用,并且也解决了我的问题。 – ganta
嗨马丁豆,我也面临同样的问题,但我使用node.js的请求模块,我使用流星(Javascript)。我已经通过base64编码的md5content,但得到相同的错误。即使我不发送FeddContent中的文件,也不会给它同样的错误。请帮助我解释这一点,我将对此感谢。它需要3天,但我还没有找到任何解决方案。我问的问题的链接是: - http://stackoverflow.com/questions/40180070/amazon-mws-submitfeed-content-md5-http-header-did-not-match-the-content-md5-calc –