Как мне получить «auth_code» из ключа location в заголовке запроса?

#python #python-requests #robotframework #requests-oauthlib

#python #python-запросы #robotframework #запросы-oauthlib

Вопрос:

Я использую комбинацию библиотеки запросов роботов, библиотеки запросов Python и библиотеки запросов python_oauthlib для тестирования проекта OAuth2.

Интересно, есть ли простой способ получить код аутентификации (без индексации строк), чтобы я мог использовать его при генерации токена

Так, например, у меня есть заголовок ответа (при входе в систему):

 {'location': 'http://127.0.0.1:19333/callback?code=clT17dFPedsgdfgsSFGDF==amp;state=random/', 'content-length': '0', 'date': 'Fri, 09 Oct 2020 11:20:52 GMT'}    
  

что я получил, выполнив response.header

Есть ли какой-нибудь способ, которым я могу просто получить clT17dFPedsgdfgsSFGDF== , выполнив что-то вроде request.auth_code

Ответ №1:

Используйте Urllib.parse . parse_qs Функция возвращает словарь пар ключ-значение, тогда parse_qsl как функция возвращает список кортежей (ключ, значение).

 import urllib.parse
queryStr = 'http://127.0.0.1:19333/callback?code=clT17dFPedsgdfgsSFGDF==amp;state=random/'
urllib.parse.parse_qsl(queryStr)
  

Вывод —

введите описание изображения здесь

Для получения более подробной информации о кодировке URL

Комментарии:

1. В «robot speak» — Evaluate urllib.parse.parse_qsl($queryStr) urllib 😉