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

Я пытаюсь следовать руководству по быстрому запуску доступа к гнездовым устройствам, и я застрял на шаге Получить токен доступа здесь 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-id&
client_secret=oauth2-client-secret&
code=authorization-code&
grant_type=authorization_code&
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, если это имеет значение. Я знаю, что это было связано с необходимостью использования двойных кавычек вместо одинарных. Искал везде и пока не нашел ответа. Спасибо!


person Robert Noneman    schedule 25.09.2020    source источник


Ответы (2)


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

curl -L -X POST -H "Content-Length: 0" [...url]
person Gijs van Dulmen    schedule 05.10.2020

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

person Robert Noneman    schedule 08.01.2021