C# Amazon web服务:您为提要传递的Content-MD5 HTTP头与\u POST\u FBA\u INBOUND\u CARTON\u内容不匹配_

C# Amazon web服务:您为提要传递的Content-MD5 HTTP头与\u POST\u FBA\u INBOUND\u CARTON\u内容不匹配_,c#,xml,amazon-web-services,amazon-s3,md5,C#,Xml,Amazon Web Services,Amazon S3,Md5,我正在使用Microsoft C#中的XML文件提交\u POST\u FBA\u INBOUND\u CARTON\u内容的提要请求。 我已经从类中生成了XML文件 然后,在我在Filestream中打开它之后,我将在FeedContent中发送它,并计算我在ContentMD5中发送的MD5值 我还将ContetType设置为application/xml 但是我仍然得到错误,因为您为提要传递的Content-MD5 HTTP头与我们为您的提要计算的Content-MD5不匹配 我在这里张贴

我正在使用Microsoft C#中的XML文件提交\u POST\u FBA\u INBOUND\u CARTON\u内容的提要请求。

我已经从类中生成了XML文件

然后,在我在Filestream中打开它之后,我将在FeedContent中发送它,并计算我在ContentMD5中发送的MD5值

我还将ContetType设置为application/xml

但是我仍然得到错误,因为您为提要传递的Content-MD5 HTTP头与我们为您的提要计算的Content-MD5不匹配

我在这里张贴我的代码

请告诉我哪里错了

        public SubmitFeedResponse SubmitFeed()
        {
            SubmitFeedRequest request = new SubmitFeedRequest();
            SubmitFeedResponse submitFeedResponse = new SubmitFeedResponse();
            FileStream fs = File.Open(@"C:\file.xml", FileMode.Open);
            try
            {
            using (MD5 md5Hash = MD5.Create())
            {
                byte[] data = md5Hash.ComputeHash(fs);
                request.ContentMD5 = GetMd5HashFromStream(data);
            }
            request.FeedContent = fs;
            request.ContentType = new ContentType(MediaType.XMLStream);
            request.FeedType = "_POST_FBA_INBOUND_CARTON_CONTENTS_";
            request.MarketplaceIdList = new IdList();
            request.MarketplaceIdList.Id.Add(this.marketPlaceID);
            request.Merchant = this.sellerID;
            request.MWSAuthToken = this.mwsAuthToken;
            request.PurgeAndReplace = false;
            submitFeedResponse = client.SubmitFeed(request);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                fs.Close(); // or fs.Dispose()
            }
            return submitFeedResponse;
        }

        public string GetMd5HashFromStream(byte[] bytes)
        {
            using (var md5 = MD5.Create())
            {
               var hash = md5.ComputeHash(bytes);
               return Convert.ToBase64String(hash);
            }
        }

正在使用的服务是否要求MD5采用base64编码,如规范d?@MadMyche是的,它需要MD5我知道,但您是以本机十六进制发送还是以base64编码?@MadMyche我是以base64编码的。对不起,我忘了在我的问题中提到这一点。刚刚编辑过。