【问题标题】:Error posting to Amazon Web Services Kinesis with .NET SDK使用 .NET SDK 发布到 Amazon Web Services Kinesis 时出错
【发布时间】:2014-04-15 13:25:19
【问题描述】:

我希望你们中的某个人可以帮助我使用 AWS Kinesis。我一直在翻阅文档,但仍然无法将“blob”数据发布到 Kinesis 流。

API 中的标准 POST 请求如下。

POST / HTTP/1.1
Host: kinesis.<region>.<domain>
x-amz-Date: <Date>
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=contenttype;
date;host;user-agent;x-amz-date;x-amz-target;x-amzn-requestid, Signature=<Signature>
User-Agent: <UserAgentString>
Content-Type: application/x-amz-json-1.1
Content-Length: <PayloadSizeBytes>
Connection: Keep-Alive
X-Amz-Target: Kinesis_20131202.PutRecord
{
"StreamName": "exampleStreamName",
"Data": "XzxkYXRhPl8x",
"PartitionKey": "partitionKey"
}

使用“邮递员”谷歌浏览器应用程序发出 Http 请求并为上述字段填写适当的信息,我终生无法弄清楚如何将成功的数据发布到流中。我无法成功地做到这一点,所以我继续使用 .NET SDK for Visual Studio。

我制作了一个快速的命令行 c# 控制台应用程序,但仍有一些问题。

我的代码: http://pastebin.com/cyJeC0vU

错误消息,System.Xml.XmlException was unhandled,出现在代码的第 61 行:http://pastebin.com/HEG7DmMw

有没有人有使用 AWS Kinesis 的成功经验。我很想挑选你的大脑/以某种方式回报你一些辅导。

再次感谢您的所有帮助!

【问题讨论】:

    标签: c# amazon-web-services sdk amazon-kinesis


    【解决方案1】:

    您收到的错误表明无法解析来自服务的响应。有一个线索是 SDK 从 JSON 解析器切换到 XML 解析器,因为响应看起来像 XML。这通常表明您在需要身份验证的代理后面,并且代理正在给您一条 HTML 错误消息。

    您可以通过启动 Fiddler 等协议分析器并观察请求流量来验证这一点。如果您的代理需要凭证,这里有一些关于将适用于 .NET 的 AWS 开发工具包与代理一起使用的文档:

    Configuring Credentials for Your AWS SDK for .NET Application

    【讨论】:

    • 非常感谢您的回复。您的答案经过充分研究,可能是正确的。我将进行一些测试,并将结果通知您。
    • 是的,您在代理背后是完全正确的。我尝试了另一个网络,它与我拥有的代码配合得很好。但是,如果我没有其他追索权,我会记住您的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 2021-08-26
    • 2013-10-14
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    相关资源
    最近更新 更多