Получение неправильного ответа от Flask с использованием запросов

#python #flask

#python #flask

Вопрос:

У меня есть конечная точка, которая работает нормально. В браузере я просто получаю ответ json при посещении api, который в настоящее время не имеет аутентификации.

Когда я делаю это:

  headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
    products = requests.get('http://myserver.mycompany.net:5000/api/read/products', headers=headers)
    app.app.logger.info("PRODUCTS")
    app.app.logger.info(products.text)
  

Мой ответ выглядит так, как будто он просто возвращает HTML-страницу ?!

 [2020-10-21 17:12:46,760] INFO in api: PRODUCTS
[2020-10-21 17:12:46,761] INFO in api: <!--samlchecks_get.html --><!DOCTYPE html><html><head><title>Welcome To Zscaler Directory Authentication</title><meta name="viewport" content="width=device-width, initial-scale=1"><style type="text/css">body {    background-color: #FFF;    font-family: Arial, sans-serif;    font-size: 12px;    text-align: center;    color: #4B4F54;    overflow: hidden;    margin: 0;}a {    color: #009dd0;    cursor: pointer;    text-decoration: none;}form {    width: 100%;    height: 100%;    margin: 0;    padding: 0;}input {    font-family: Arial;    font-size: 100%;    margin: 0;    width: 100%;    vertical-align: top;    color: #424242;    display: inline-block;    border: none;    padding: 0;    text-align: left;    height: 100%;    width: calc(100% -35px);}table {    margin-top: 10px;    text-align: center;    background-color: white;}table.table-company-logo {    background-color: #e3e3e3;}table.table-upper {    border-radius: 10px;}table.table-lower {    border-bottom-left-radius: 10px;    border-bottom-right-radius: 10px;    background-color: #f3f3f3;}table.table-field-label {    margin-bottom: 2px;}table.table-field-input div.input-wrapper {    display: block;    border-color: #2a2c30;;    width: inherit;    padding-left: 10px;}table.table-field-input .input-wrapper.disabled {    border-color: #cfd0d1;}table.zsc-company {    border-bottom-left-radius: 10px;    border-bottom-right-radius: 10px;    background-color: #f3f3f3;}table.zsc-company td {    border-bottom-left-radius: 10px;    border-bottom-right-radius: 10px;    font-size: 11px;    color: #939393;}.table-hal
  

Когда я посещаю конечную точку непосредственно в браузере, я получаю ответ json.

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

1. Возможно, у вас есть действительный сеанс единого входа в вашем браузере. Попробуйте в окне инкогнито.

2. Как это повлияет на ответ?

3. То же самое происходит в режиме инкогнито….

4. Используйте response.json(), а не response.text

5. не работает, просто говорит о недопустимом ответе json. Потому что на самом деле он возвращает другой ответ. В моем другом сообщении говорится, что это может быть связано с активным сеансом единого входа в моем браузере, но это также происходит на вкладке инкогнито.