Amazon MWS にフィードを送信しようとしています。問題は、私が送信した Md5 ハッシュが Amazon の計算と一致しないと Amazon が言っているため、私の要求が拒否されたことです。
これは、ハッシュを計算するために使用するコードです。
var
StringStream: TStringStream;
MessageDigest: TIdHashMessageDigest5;
XMLString: string;
begin
MessageDigest := TIdHashMessageDigest5.Create;
StringStream := TStringStream.Create;
try
StringStream.WriteString(XMLString);
HashString := MessageDigest.HashStream(StringStream);
finally
StringStream.Free;
MessageDigest.Free;
end;
end;
そして、これがAmazonからの応答です:
<ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
<Error>
<Type>Sender</Type>
<Code>ContentMD5DoesNotMatch</Code>
<Message>the Content-MD5 HTTP header you passed for your feed (H3GnH3X3H3auHZ0mGZ8mD4KvE30mEJauHKD6E3GoDqK) did not match the Content-MD5 we calculated for your feed (fSEMn6SCuSia5YVdz/1NqQ==)</Message>
<Detail />
</Error>
<RequestID>9c3e0b2a-c418-41dc-b733-e55ac01343b1</RequestID>
</ErrorResponse>
base64 でエンコードされた MD5 ハッシュを計算する適切な方法は何ですか? 私のコードに何か問題がありますか?
よろしくお願いします。
P.