2017-10-10 13 views
0

を使用mantain、私はクッキーを維持したいとクッキーを使用してJSONデータ.Whyをフェッチするために、GETリクエストをもう一度送信したいがセットクッキーれる.doという使用を私は国家やクッキーのpython、状態はPythonでは

を維持する必要があります
import requests 
import pprint 

url = 'https://shoapi.xxx.com/api/method/login' 
headers = {'User-Agent': 'Mozilla/5.0'} 
payload = {'usr':'@gmail.com','pwd':'mh'} 
response = requests.request("POST", url,headers=headers,data=payload) 
response_data_json = response.json() 


print("") 
print("") 
print(type(response.text)) 
pprint.pprint(response.text) 
print("") 
print("") 
print("-----------Header---------------") 
pprint.pprint(response.headers) 
headers=response.headers 
print("-----------End of Header---------------------------") 
print("") 
print("") 
print(type(response_data_json)) 

pprint.pprint(response_data_json) 


print("---------------------------")  

答えて

1

POST用にrequests.Sessionを使用し、後続のGET要求で同じセッションインスタンスを再利用すると、セッションは維持され、Cookieが処理されます。 HTTP仕様に従って

mysession = requests.Session() 
data = {'login': 'mylogin', 'pass': 'mypass'} 
mysession.post(myurl, data=data) 

mysession.get(myurl2) #uses logged in session with cookies as set 
mysession.get(myurl3) #reuses session again 

あなたが本当にそれらのものを処理する場合を除き、あなたは、状態を維持する必要がある、とSet-Cookieを使用していない自分が

+0

403エラーが「禁じられた」です。これは、おそらく2つのうちの1つを意味します:あなたがGETしようとしているURLが、ログインしたユーザ(ブラウザでこれをテストする)に対して禁止されているか、 "python-requests"のようなユーザエージェントに禁止されています。そのようなユーザーエージェントが禁止されている場合、ユーザーエージェントの文字列をFirefoxなどのブラウザのものと同じに設定すると、スクリプトが機能することがあります。 – jdoer1997

+0

そのユーザーについては、禁止されていないログインできます。 (ブラウザでこれをテストしました)、 "user agent string"サンプルコードを提供してください/例 –

+0

あなたがログインしたウェブサーバ(shoapi.erpnext.com)とGETしようとしているウェブサーバが同じではない可能性がありますfrom(gps.erpnext.com)? – jdoer1997

関連する問題