【发布时间】:2015-09-29 16:49:59
【问题描述】:
我的任务是与Amazon Gift Codes On Demand (AGCOD) RESTful API 集成。我们需要使用Signature Version 4 签署我们的请求,这是由他们的AWS SDK for .NET 为其他服务而不是AGCOD 执行的。
我正在使用 System.Net.Http 命名空间中的 HttpClient 类与 AWS 的 API 进行通信。这反过来又使用HttpClientHandler 创建HttpRequestMessage。这样会在邮件中添加额外的标头,例如 Host、Content-Length 和 Connection。
我的问题是,在我调用PostAsync 并添加标头之后,但在将其发送到服务器之前,我该如何检查消息以便我可以计算和添加签名?
我显然可以自己简单地指定这些标题。但这仅对已知标头有所帮助。如果使用不同的HttpMessageHandler(例如WebRequestHandler),则可以添加不同的标头(例如Content-Encoding 和Cache-Control)。如果我不知道消息中的所有标头,我将无法计算正确的签名。
【问题讨论】:
标签: c# .net amazon-web-services httpclient