cURL错误 - 无法为-d发送文本值

时间:2014-10-29 19:15:12

标签: json windows http curl nest-api

执行:

curl.exe -k -L -X PUT "https://developer-api.nest.com/devices/thermostats/[DEVICE_ID]/hvac_mode.json?auth=[ACCESS_TOKEN]" -H "Content-Type: application/json" -d "heat"

产生错误:

{"error":"Invalid content sent"}

使用完全相同的命令,但将hvac_mode替换为target_temperature_f,将"heat"替换为65(任何数字都可以正常工作,不带引号),数据会在上游发生变化。我尝试发送"heat"没有引号和''代替“” - 没有区别。

权限很好。 Documentation说我应该能够做到这一点。我目前在"off" hvac_mode

如果我将"heat"替换为'{"target_temperature_f": 73}',我会得到:

{"error":"Invalid content sent"}curl: (3) [globbing] unmatched close brace/bracket in column 3

1 个答案:

答案 0 :(得分:1)

以下适用于Linux:

curl.exe -k -L -X PUT "https://developer-api.nest.com/devices/thermostats/[DEVICE_ID]?auth=[ACCESS_TOKEN]" -H "Content-Type: application/json" -d '{"hvac_mode":"heat"}'

并在Windows中:

curl.exe -k -L -X PUT "https://developer-api.nest.com/devices/thermostats/[DEVICE_ID]?auth=[ACCESS_TOKEN]" -H "Content-Type: application/json" -d "{\"hvac_mode\":\"heat\"}"