错误400使用REST API到IBM Watson IoT平台

错误400使用REST API到IBM Watson IoT平台,rest,ibm-cloud,iot,Rest,Ibm Cloud,Iot,我正在尝试使用RESTAPI将json格式的消息从嵌入式系统传输到IBM Watson IoT平台。我已经使用另一个程序(postman)测试了RESTAPI,它工作正常,但是从嵌入式系统传输的相同字符串返回错误400。在我的嵌入式系统中是否有我需要的“额外”安全证书来实现这一点?还是我还遗漏了什么 以下是指向消息传递的REST API的链接: 以下是从我的嵌入式系统(通过套接字连接)输出的字符串,其中正确输入了typeID、deviceID、eventName和orgID,encode64(名

我正在尝试使用RESTAPI将json格式的消息从嵌入式系统传输到IBM Watson IoT平台。我已经使用另一个程序(postman)测试了RESTAPI,它工作正常,但是从嵌入式系统传输的相同字符串返回错误400。在我的嵌入式系统中是否有我需要的“额外”安全证书来实现这一点?还是我还遗漏了什么

以下是指向消息传递的REST API的链接:

以下是从我的嵌入式系统(通过套接字连接)输出的字符串,其中正确输入了typeID、deviceID、eventName和orgID,encode64(名称令牌)是在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 Platom API没有提到使用端口80,但我可以通过邮递员使用端口80将JSON格式的消息传输到IoT平台

请求必须包含授权标头。基本身份验证是唯一受支持的方法。应用程序通过使用API密钥进行身份验证。当应用程序通过Watson IoT平台HTTP REST API发出任何请求时,需要用户名和密码


请参阅文档:

请求必须包含授权标头。基本身份验证是唯一受支持的方法。应用程序通过使用API密钥进行身份验证。当应用程序通过Watson IoT平台HTTP REST API发出任何请求时,需要用户名和密码


请参阅文档:

我解决了我的问题。对于HTTP规范,我对回车符和换行符的排序不正确。即:“\r\n”而不是“\n\r”。现在一切正常。

我解决了我的问题。对于HTTP规范,我对回车符和换行符的排序不正确。即:“\r\n”而不是“\n\r”。现在一切正常。

我正在使用相应的授权标题。正如我所说,它在postman中工作,但在嵌入式设备上不起作用(也就是说,如果我在postman中排除授权,它在postman中就不起作用)。您是否包括一个请求头来指定内容类型为application/json?瓦莱丽:感谢您的回复:我编辑了我的帖子,以提供更多信息。回答您的问题:是的,我使用适当的授权头将内容类型指定为application/jsonI。正如我所说,它在postman中工作,但在嵌入式设备上不起作用(也就是说,如果我在postman中排除授权,它在postman中就不起作用)。您是否包括一个请求头来指定内容类型为application/json?瓦莱丽:感谢您的回复:我编辑了我的帖子,以提供更多信息。回答您的问题:是的,我确实将内容类型指定为application/json