2016-11-24 17 views
1

Я использую библиотеки запросов 2.12.1 в Python 2.7 и Django 1.10 для использования веб-сервисов. Когда я использую сеанс для сохранения куки-файлов и использования персистентности и пропускаю 10 секунд ~ без использования каких-либо веб-сервисов, мое представление восстанавливает запросы объекта. Сессия() ...Почему мой запрос заканчивается?

Это делает веб-сервис не обслуживающим меня, потому что мой взгляд изменил файлы cookie.

Это мой Views.py:

client_session = requests.Session() 

@watch_login 
def loginUI(request): 
     response  = client_session.post(URL_API+'login/', data={'username': username, 'password': password,}) 
     json_login  = response.json() 

@login_required(login_url="/login/") 
def home(request): 
    response_statistics = client_session.get(URL_API+'statistics/') 
    log('ClientSession: '+str(client_session)) 

    try: 
     json_statistics  = response_statistics.json() 
    except ValueError: 
     log('ExcepcionClientSession: '+str(client_session)) 

     return logoutUI(request) 

    return render(request, "UI/home.html", { 
     'phone_calls'   : json_statistics['phone_calls'], 
     'mobile_calls'   : json_statistics['mobile_calls'], 
     'other_calls'   : json_statistics['other_calls'], 
     'top_called_phones'  : json_statistics['top_called_phones'], 
     'call_ranges_week'  : json_statistics['call_ranges_week'], 
     'call_ranges_weekend' : json_statistics['call_ranges_weekend'], 
     'access_data'   : accessData(request.user.username), 
    }) 

    def userFeaturesFormInit(clientRequest): 
    log('FeaturesClientSession: '+str(client_session)) 
    response = client_session.get(URL_API+'features/') 

    try: 
     json_features = response.json() 
    except ValueError as e: 
     log('ExcepcionFeaturesClientSession: '+str(client_session)) 
     raise e 

Спасибо.

+0

Вы используете Джанго? – Marcs

+0

Да, я использую django. – ILoveYouDrZaius

ответ

0

Я исправил его, указав куки-файлы вручную, и сохранил его в запросе.

client_session = requests.Session() 
response = client_session.post(URL_API+'login/', {'username': username, 'password': password,}) 
request.session['cookiecsrf']  = client_session.cookies['csrftoken'] 
request.session['cookiesession'] = client_session.cookies['sessionid'] 

И отправить его в получает/сообщений:

cookies = {'csrftoken' : request.session['cookiecsrf'], 'sessionid': request.session['cookiesession']} 
response = requests.get(URL, cookies=cookies) 

 Смежные вопросы

  • Нет связанных вопросов^_^