【问题标题】:How do i add a content-md5 header to HttpRequestMessage.Headers in C# when i'm uploading on S3 server?当我在 S3 服务器上上传时,如何在 C# 中向 HttpRequestMessage.Headers 添加 content-md5 标头?
【发布时间】:2018-06-21 22:11:41
【问题描述】:

HttpRequestHeaderCollection 类的 Add(TKey, TValue)TryAppendWithoutValidation(String, String) 两种方法都不起作用。

如果我使用HttpRequestMessage.ToString,我可以看到authorizationheader 里面有SignedHeaders=content-md5,但 content-md5 不在标题中,而是在后面的字段中。

这就是我得到的(我删除了值)。

Headers:
{
  x-amz-date: 
  x-amz-meta-content-type: 
  x-amz-user-agent: 
  x-amz-content-sha256: 
  x-amz-security-token: 
  authorization: 
}{
  Content-Type: 
  Content-MD5: 
}

【问题讨论】:

    标签: c# amazon-s3 uwp http-headers httprequest


    【解决方案1】:

    HttpRequestMessageContent 也有一个标头集合(HttpContentHeaderCollection)。

    HttpContentHeaderCollection.ContentMD5 property 中设置MD5 值。该链接还提供了计算 MD5 值的示例,该值是 IBuffer 而不是纯文本。

    【讨论】:

    • 我试过但我得到'我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。无论如何。
    • 这是从亚马逊 s3 返回的响应,谷歌错误为我找到了一些命中。可能是其他问题造成的...
    【解决方案2】:

    HttpContentHeaderCollection.ContentMD5 属性似乎无济于事地将其值转换为 Base 64。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 2010-12-20
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      相关资源
      最近更新 更多