我試圖提交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 –