2016-09-05 3 views
0

쿼리하려는 애플리케이션에 Json 형식이 필요합니다. 지원되는 방법은 POST입니다. 나는 겉으로 1 개 쿼리에서 쿠키를 얻고 다른 쿼리에 전달하는 방법의 좋은 예를 찾을 수 있습니다 (또는 후속 쿼리가 base package의 일부로 사용할 수 없습니다. 당신은 내가 잘못하고있는 무슨 조언을 수 있을까요?안정적인 API - 후속 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) 동일한 작업 수행 귀하의 스크립트, 그 다음 필요에 따라 위생 처리하고 여기에 게시하십시오. 그게 우리가 너를 더 잘 도울 수있게 해줄거야. 감사.

주/추가 읽기 자료 : - : How to debug the http response headers from a HTTP call

2) JSESSIONID 일부 추가 정보 :

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

1) 방화범을 사용하여 도움이 필요한 경우 여기에 하나 개의 링크입니다

3)이 링크는 쿠키 및 컨텍스트에 대한 흥미로운 설명이 있습니다. http://www.cs-repository.info/2014/04/sharing-jsessionid-across-applications.html 문제가 발생한 실제 이유를 분명히 알 수 있습니다 (단, 그는 서버 측 솔루션을 당신에게 적용 할 수 없다). "AppOne/one.jsp"텍스트를 검색하고 그 시점부터 읽으면 빨리 읽을 수 있습니다.