2014-04-15 59 views
2

我希望你们中的一个能够帮助我使用AWS Kinesis。我一直在关注文档,并且仍然无法将“blob”数据发布到Kinesis流。错误发布到亚马逊网络服务Kinesis与.NET SDK

在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请求,并在上述领域我不能为我的生活弄清楚如何做一个成功的数据后到流适当的信息填写。我无法成功完成此任务,因此我继续为Visual Studio使用.NET SDK。

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

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

错误消息,System.Xml.XmlException了未处理,出现在代码的行61:http://pastebin.com/HEG7DmMw

有没有人有使用AWS室壁运动成功的经验。我很乐意挑选你的大脑/以某种方式报答你一些辅导。

再次感谢您的帮助!

回答

3

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

你可以通过启动一个像Fiddler这样的协议分析器并观察请求流量来验证这一点。如果您的代理需要凭据,这里是有关使用AWS SDK用于.NET使用代理的一些文档:

Configuring Credentials for Your AWS SDK for .NET Application

+0

非常感谢你对你的回应。你的答案很好研究,很可能是正确的。我要做一些测试,并会通知你结果。 – ridonkulus

+0

是的,你完全正确地支持代理。我尝试了另一个网络,它使用我的代码很好。但是,如果我没有其他追索权,我会牢记您的链接。 – ridonkulus