【发布时间】:2021-01-08 00:56:06
【问题描述】:
我们正在使用 Chilkat 9.5.0.80 C++ 库。
我们无法将某个 HTTP 标头添加到我们的请求中:“Content-MD5”。当我们像这样添加这个标题时:
m_ckRest.AddHeader("Content-MD5", "any-value-here");
并检查生成的请求*,“Content-MD5”标头不存在。
但是,当我们添加不同名称的标题时:
m_ckRest.AddHeader("Content-Type", "application/octet-stream");
...生成的请求确实包含该标头。我们使用的是“fullRequestBinary”方法,例如:
const char* responseStrPtr = m_ckRest.fullRequestBinary( "PUT", encodedObjectName.c_str(), ckByteDataBuffer);
* 我们正在使用代理检查我们的请求(例如,使用“Fiddler”作为我们和 Amazon S3 之间的 http 代理来测试多部分 AWS S3 上传中“部分”的上传)并且在每次尝试中, “Content-MD5”标头不存在,而其他标头存在。
这是一个错误吗?我们发现一个 2013 年的旧论坛帖子引用了一个非常相似的问题:http://www.chilkatforum.com/questions/2901/addheader-range-does-not-appear-to-be-effective Chilkat 是否删除或忽略了我们添加“Content-MD5”标头的尝试?这个错误是否在比我们使用的版本更新的版本中修复?有解决方法吗?以下是 PUT 请求中的标头示例:
PUT https://our-bucket.s3.us-west-1.amazonaws.com/somefile?partNumber=4&uploadId=tJJYIXdxG_7X8elzSJrKt32A_rH46Y0Yk1vyzZgwxpvmK5uCrcE82k_F9UmytVHWuxXfc6tX5o3w.SRnnYcD7VBskcLrr0xC13bHHVDx62iGGQ3eIzkv5J5d1F4_DkcW HTTP/1.1
Content-Length: 5266235
x-amz-date: 20200921T201943Z
x-amz-content-sha256: 90fa8fc564dd558d0c2eac92e367d94101f4ca9570c970795b9fdb2aa96d6666
Host: our-bucket.s3.us-west-1.amazonaws.com
Content-Type: application/octet-stream
Date: Mon, 21 Sep 2020 20:19:43 GMT
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIBYS55OSD2FIOBFUS/20200921/us-west-1/s3/aws4_request,SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date,Signature=8ea74cb7769d8e158e5ccc0604cc2cdb096703b10c3c8d9323d0746debbdUUU
【问题讨论】: