我正在尝试从REST API Home Assistant Developer Docs在Windows 10上使用下面的curl示例。
curl -X POST -H "Authorization: Bearer ABCDEFGH"
-H "Content-Type: application/json"
-d '{"entity_id": "switch.christmas_lights"}'
http://localhost:8123/api/services/switch/turn_on
下面是我的实际命令行(为Windows转义双引号(:
curl -X POST -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI5OTc5ZDUwZjA2MDk0YmQ1YTBkYjkyYmQ5MjEyYWZkNyIsImlhdCI6MTU4Nzc5MzI4NywiZXhwIjoxOTAzMTUzMjg3fQ.8sjGRXL1spXguuRnp795049zdCFcOtraCiDjC61UkWQ" -H "{"Content-Type: application/json"}" -d "{"entity_id": "light.media_room_light"}" http://homeassistant.local:8123/api/services/switch/turn_on
它会以以下错误消息进行响应。我正在使用从下载的curl.exe
invalid character in header
我从以下位置下载了curl.exe:https://curl.haxx.se/windows/
我认为您的MIME Content-Type标头与json编码的数据字段混淆了。
取而代之的是:
-H "{"Content-Type: application/json"}"
此:
-H "Content-Type: application/json"
压扁成一行:
curl -X POST -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI5OTc5ZDUwZjA2MDk0YmQ1YTBkYjkyYmQ5MjEyYWZkNyIsImlhdCI6MTU4Nzc5MzI4NywiZXhwIjoxOTAzMTUzMjg3fQ.8sjGRXL1spXguuRnp795049zdCFcOtraCiDjC61UkWQ" -H "Content-Type: application/json" -d "{"entity_id": "light.media_room_light"}" http://homeassistant.local:8123/api/services/switch/turn_on