Любая идея, как открыть объект байтов в новой вкладке? - PullRequest
0 голосов
/ 03 октября 2019

Я запрашиваю API для предоставления доступа для связи с приложением для интеграции. При запросе я получаю ответ, который находится в байтовом объекте , поэтому я не могу открыть его в новой вкладке, потому что я хочу, чтобы войти в мое приложение.

header = {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
    response = requests.get(
        'https://api.getbase.com/oauth2/authorize',
        data='client_id=' + self.client_id + '&response_type=code&redirect_uri='
             + self.redirect_uri, headers=header).content

webbrowser.open_new_tab(response)

1 Ответ

1 голос
/ 03 октября 2019

просто решая вашу заявленную проблему, вам нужно decode байтов в строку или просто использовать атрибут text.

при этом ваш код кажется излишне хрупким и может быть лучше:

response = requests.post('https://api.getbase.com/oauth2/authorize', data={
  'client_id': self.client_id,
  'response_type': 'code',
  'redirect_uri': self.redirect_uri
})
# make sure we throw an exception on failure
response.raise_for_status()

webbrowser.open_new_tab(response.text)

таким образом, вы можете requests иметь дело с кодированием / экранированием параметров соответствующим образом. по умолчанию кодировка / тип данных с HTTP-запросом POST application/x-www-form-urlencoded. GET-запросы не отправляют тело, поэтому я не уверен, как работал ваш предыдущий код

...