我正在尝试使用Skywire LTE Cat 1调制解调器(http://nimbelink.com/skywire-4g-lte-cat-1/)来更新AWS IoT上的事物阴影。我让设备通过HTTP与AWS通信,并且能够根据他们的教程执行GET命令。
现在我正在尝试执行POST命令来更新我的东西的阴影。但是,每当我尝试发送POST命令时:
POST /things/AWS_Test_Thing/shadow HTTP/1.1
BODY: {"state":{"reported":{"Temp":55}}}
AWS向我发送以下错误:
HTTP/1.1 Bad Request
{"message":"Payload contains invalid json","traceId":"e53be1d6-7967f52c-4dd6-d7b95cc20628"}
我之前从未使用过JSON,但是我可以从中收集,
{"state":{"reported":{"Temp":55}}}
应该是有效的JSON并且符合AWS IoT文档(http://docs.aws.amazon.com/iot/latest/developerguide/thing-shadow-document-syntax.html#thing-shadow-example-request-json)。我错过了什么?
答案 0 :(得分:0)
如果您通过POST请求更新阴影,则应该有“所需”语句而不是“已报告”。
答案 1 :(得分:0)
确保在请求和签名过程中包含Content-Length
标头。 Content-Length
必须反映您要发送的JSON有效负载的大小。