我正在使用覆盆子pi 3,raspbian OS,我正在使用azure-iot-sdk-c
我按照这里的github说明进行操作:https://github.com/Azure/azure-iot-sdk-c,我下载并正确构建了iothub_client / samples文件夹中的所有示例
当我将连接字符串放在iothub_client_sample_http.c中时,错误是
这里:
static const char* connectionString = "[device connection string]";
并运行它,我得到许多这样的错误:
错误:时间:星期一12月19日14:23:36 2016文件:/home/pi/Desktop/azure-iot-sdk-c/c-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest行:576 HTTP通信失败:服务器回复代码是401信息:HTTP响应:{“消息”:“ErrorCode:IotHubUnauthorizedAccess;未授权”,“ExceptionMessage”:“跟踪ID:13262df6828d469e9b29e2176a86fad3-G:9-TimeStamp:12/19/2016 22:23:37 “}错误:时间:星期一12月19日14:23:36 2016文件:/home/pi/Desktop/azure-iot-sdk-c/iothub_client/src/iothubtransporthttp.c Func:DoEvent Line:1626意外的HTTP状态代码( 401)
这是我的连接结构:
static const char* connectionString = "HostName=<myiothub>;DeviceId=<mydevice>;SharedAccessKey=<myaccesskey>";
如果我直接使用azure门户网站提供的字符串,为什么它会给我一个401?
我已经尝试了每个连接字符串(hubowner,service&device),仍然给我401:C
1 回答
我生成并使用SAS密钥作为连接字符串,一切正常 .
我从Device explorer的预建版本生成了SAS
这是有效的,因为,如_1370211中所述: