#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. Потому что на самом деле он возвращает другой ответ. В моем другом сообщении говорится, что это может быть связано с активным сеансом единого входа в моем браузере, но это также происходит на вкладке инкогнито.