2016-09-05 3 views
0

Приложение, которое я хочу запросить, требует Json-формата. Поддерживаемый метод - POST. Я, казалось бы, не могу найти хороший пример того, как получить печенье с 1 запроса и передать его в другой запрос (или сделать последующие запросы использовать его как часть base package. Не могли бы вы посоветовать, что я делаю неправильно?Restful API - передача cookie на последующие POST-запросы

import json 
import requests 
headers = {'Content-type': 'application/json'} 
data = {"username":"user1", "password":"pass1"} 
login_info = json.dumps(data) 

session = requests.Session() 

login_url = 'https://ip/login' 
response = session.post(login_url, data=login_info, headers=headers, verify=False) 
print session.cookies.get_dict() 
#returns the following format- {'JSESSIONID': 'DE1EE0006D53EABFA4EE0C6A50D1386A'} 

query_url = 'https://ip/query' 
response = session.post(query_url, cookies=session.cookies.get_dict(), headers=headers, verify=False) 

print response.text 
#retuns +++++++++++++++ JSESSIONID is empty! +++++++++++++ 

ответ

-1

Эта ссылка может иметь решение вашей проблемы:. Apache HttpClient 4.0.3 - how do I set cookie with sessionID for POST requestПосмотрите на печенье настройки части пути ... вы, возможно, должны сделать это до вашего второго HTTP Post запроса

можете ли вы захватить. HTTP-запрос, ответ (например, с использованием Firebug или Chrome), в то время как (1) вручную пытается использовать страницы входа и запроса и (2) делать то же самое w с вашим сценарием, а затем дезинфицировать их по мере необходимости и публиковать их здесь, пожалуйста? Это позволит нам помочь вам лучше. Благодарю.

Примечание/Дополнительные материалы для чтения:

1) Если вам нужна помощь с помощью Firebug - вот одна ссылка: How to debug the http response headers from a HTTP call

2) Некоторые дополнительные данные на JSessionID:

http://www.cs-repository.info/2014/07/understanding-jsessionid.html

3) Эта ссылка содержит интересное объяснение в отношении файлов cookie и контекста: http://www.cs-repository.info/2014/04/sharing-jsessionid-across-applications.html Возможно, это объясняет реальную причину проблемы, с которой вы сталкиваетесь (хотя t серверное решение не применимо к вам). Пожалуйста, найдите текст «AppOne/one.jsp» и прочитайте с этого момента, чтобы иметь возможность быстро завершить чтение.