【发布时间】:2017-04-20 21:14:18
【问题描述】:
我正在尝试使用 REST API 从嵌入式系统向 IBM Watson IoT Platform 传输 json 格式的消息。我已经使用另一个程序(邮递员)测试了 REST API,它工作正常,但是从我的嵌入式系统传输的相同字符串返回错误 400。我的嵌入式系统中是否需要“额外”安全证书才能使这项工作?还是我还缺少其他东西?
这是用于消息传递的 REST API 的链接:https://docs.internetofthings.ibmcloud.com/apis/swagger/v0002/http-messaging.html
以下是我的嵌入式系统(通过套接字连接)输出的字符串,其中 typeID、deviceID、eventName 和 orgID 输入正确,encode64(name token) 是 name 和 token 连接的正确授权字符串编码在 base64 中。
POST /api/v0002/device/types/typeID/devices/deviceID/events/eventName HTTP/1.1
Host: orgID.messaging.internetofthings.ibmcloud.com:80
Content-Type: application/json
Authorization: Basic encode64(name token)
{random JSON formatted message}
首先解析以下 URI 的 IP 地址来建立套接字连接:orgID.messaging.internetofthings.ibmcloud.com 然后对IP地址和80端口使用标准套接字连接函数。
虽然 IoT Platorm API 没有提及使用端口 80,但我可以通过 Postman 使用端口 80 将 JSON 格式的消息传输到我的 IoT 平台。
【问题讨论】: