Ошибка 411 при «Получении токена доступа» — для запросов curl POST требуется заголовок длины содержимого

#nest-device-access

#гнездо-доступ к устройству

Вопрос:

Я пытаюсь следовать краткому руководству по доступу к устройству nest, и я застрял на шаге «Получить токен доступа» здесь https://developers.google.com/nest/device-access/authorize#get_an_access_token

Я запускаю команду в терминале Windows точно так, как она указана в руководстве (за исключением моего client_id, client_secret и authorization_code):

 curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?
client_id=oauth2-client-idamp;
client_secret=oauth2-client-secretamp;
code=authorization-codeamp;
grant_type=authorization_codeamp;
redirect_uri=https://www.google.com'
  

но он возвращает эту ошибку:

 <p><b>411.</b> <ins>That’s an error.</ins>
  <p>POST requests require a <code>Content-length</code> header.
  

Понятия не имею, чего мне не хватает в заголовке. Я нахожусь на компьютере с Windows 10, если это имеет значение. Я знаю, что это было сделано из-за необходимости использовать двойные кавычки вместо одинарных кавычек. Искал везде и пока не смог найти ответ. Спасибо!

Ответ №1:

Вам необходимо добавить заголовок Content-Length для размера содержимого вашего POST-запроса. Я думаю, в вашем случае это ноль. Итак, можно добавить следующее:

 curl -L -X POST -H "Content-Length: 0" [...url]
  

Ответ №2:

Если у кого-то еще была эта проблема, я смог заставить это работать правильно, просто используя git bash в качестве моего терминала (без необходимости добавлять -H «Content-Length: 0» в команду)