Обзор
Я использую sh для сбора содержимого адресной строки браузера, открытого функцией в программе на C / C ++. Здесь есть несколько тем, которые обсуждают этот вопрос. Однако ни один из них не кажется мне полезным.
Моя среда
ОС: Windows 7, Windows 10. Язык разработки: C / C ++
Мой проект
Я пишу приложение, в котором мне нужно собирать данные с сервера. Сервер требует от клиента аутентификации и использует для этого двухэтапный протокол OAuth 2.0 . Мне нужно использовать веб-API, разработанный третьей стороной.
На следующей странице описан весь процесс.
https://apidocs.getresponse.com/v3/case-study/oauth2-authorization-code
Однако у меня проблема только с первым шагом: получить код авторизации с сервера.
Выделение на этой странице объясняет процесс первого шага, единственного, который здесь имеет значение:
![image](https://i.stack.imgur.com/4ARsU.png)
Want to see by yourself ? Try this.
I have created an account and registered a bogus app on getresponse.com for testing purpose.
После перенаправления на сайт example.com , следующий экран показывает следующее в адресной строке:
http://example.com/receiver?code=<code>&state=xyz
Этот код в адресной строке - именно то, что мне нужно, чтобы продолжить второй этап аутентификации, когда эта страница отображается в браузере. Следовательно, необходимо собрать данные, содержащиеся в адресной строке.
- Вы можете повторить операцию и снова перейти к тому же URL-адресу: вам не нужно будет снова входить в систему и вы получите другой код авторизации.
(Примечание: для тестирования протокола Oauth 2.0 на getresponse.com я создал приложение 9 июля 2020 года. Этот аккаунт имеет срок действия 30 дней. Поэтому учетные данные, упомянутые выше, вероятно, истекут через месяц после даты создания.)
То, что я пробовал до сих пор
Я не буду go в подробности или этот пост может стать слишком длинным. Но я пробовал множество запросов curl GET с разными параметрами. Не повезло: я никогда не получаю данные адресной строки браузера с кодом взамен.
Может ли кто-нибудь помочь?