@MaBa2014

Как сохранить текущую сессию python при парсинге json?

import requests

headers = {
        'Accept': 'application/json',
    }
params = (
    ('userName', 'Login'),
    ('password', 'Pass'),
    ('propertyId', '1'),
)

response = requests.get('http://ссылка на ресурс/api/Account', headers=headers, params=params)
print(" ")
print("Status code: " + str(response.status_code))
print(" ")
if response.status_code == 200:
    print("Запрос выполнен успешно")
else:
    print("Ошибка, проверьте заполненные данные и попробуйте снова")

print(" ")
print(response.json()["User"])#Выдает все данные пользователя, здесь никаких проблем
print(" ")

response = requests.get('http://этот же ресурс/api/Repair', headers=headers, params=params)
print("Status code: " + str(response.status_code))#Выдает статус 401

print(response.json())#Пишет Authorization has been denied for this request

Подскажите пожалуйста как мне сохранить текущую сессию, я так предполагаю что при 2 запросе у меня просто пропадает информация о аутентификации
Заранее извиняюсь за кривой код
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
@noremorse_ru
Ну вам конечно надо подразобраться в теории http, если это api, то скорее всего авторизация вернется токен в теле и его нужно будет добавить в headers, токенов может быть и 2, поэтому нужно смотреть документацию к апи, с которым вы общаетесь. Т.е. сессия вам тут не поможет скорее всего как таковая, она просто делает часть работы за вас, а именно хранит куки и заголовки, чтобы не подмешивать их каждый раз. Сам объект инициализируется так: requests.Session()

P.S. В print можно писать строки через запятую, а не плодить их десятками. И если вы делаете проверку по статус коду ответа, то лучше делать это через assert, ибо код будет выполняться дальше, а в вашем случае код зависит от response, продолжать что-то делать если в response не то что мы ожидаем смысла нет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Speech Analytics Москва
от 150 000 до 200 000 ₽
YLab Москва
от 180 000 ₽
08 апр. 2020, в 04:51
16000 руб./за проект
08 апр. 2020, в 00:40
15000 руб./за проект