【发布时间】:2015-12-17 09:09:16
【问题描述】:
卷曲https://connect.insteon.com/api/v2/commands\ -X 发布\ -H“内容类型:应用程序/json”\ -H "身份验证:APIKey $API_KEY" \ -H "授权:持有者 $ACCESS_TOKEN" --data-binary '{"command":"on","level":75,"device_id":67890}'
这是用于控制 insteon 设备的 curl 命令,它通过终端在 linux 机器上运行良好。
我试图使用 CURL 命令运行相同的命令,但它抛出错误。 如果有人可以帮助我以 curl 命令格式发送上述请求,那将有很大帮助。
片段:
curl_easy_setopt(curl, CURLOPT_URL, "https://connect.insteon.com/api/v2/commands");
list = curl_slist_append(list, "Content-Type: application/json");
list = curl_slist_append(list,"Authentication: APIKey XXXXXX");
list = curl_slist_append(list,"Authorization: Bearer XXXXX");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
/*I tried both PUT and POST as well*/
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); /* !!! */
curl_easy_setopt(curl, CURLOPT_POSTFIELDS,"--data-binary '{\"command\":\"on\",\"level\":75,\"device_id\":738486}'"); /* data goes here */
res = curl_easy_perform(curl);
if(res != CURLE_OK)
{
curl_easy_strerror(res);
}
curl_easy_cleanup(curl);
【问题讨论】:
-
无论如何请添加sn-p
-
CURLOPT_CUSTOMREQUEST 在那里毫无用处。 POSTFIELDS 已经是一个 POST。
-
“抛出错误”?究竟是什么错误?
-
嗨,linux机器没有错误但是当我在windows机器中移植相同的代码时 curl_easy_perform(curl);正在返回 CURLE_SSL_CACERT。我还没有调试它,所以我会在调试代码后更新你
-
在windows中我们需要添加 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);作为额外的,它将开始工作