python+requests實現接口測試 - cookies的使用


在很多時候,發送請求后,服務端會對發送請求方進行身份識別,如果請求中缺少識別信息或存在錯誤的識別信息,

會造成識別失敗。 如一些需要用戶登錄以后才能訪問的頁面。

import requests
myaddress_url='http://xxx.com/api/v1/myaddress'
myaddress=requests.get(myaddress_url)
print(myaddress.status_code)
print(myaddress.text)

-----結果-----
401
未授權的訪問, 請重新登陸

 

在用戶登錄的時候,服務器端會向請求方發送一些資料,存在本地,例如cookies,在接下來的某些請求中,都需要帶上cookies,服務器通過cookies內容來辨別

使用者。

那么在python中,是如何在請求中帶入cookies信息的呢,看下面:

import requests
login_url='http://xxx.com/api/v1/user/login'
userinfo={"ua":"username","pw":"password"}
login=requests.post(login_url,json=userinfo)
cookies=login.cookies                                #獲取登錄后的cookies內容

myaddress_url='http://xxxx/api/v1/myaddress'
myaddress=requests.get(myaddress_url,cookies=cookies)    #在請求中帶入cookies
print(myaddress.status_code)
print(myaddress.text)

-----結果-----
200
{........}

帶入了cookies內容后,可以正常的獲取到想要的響應內容。

在此處雖然可以請求成功,但需要獲取到cookies內容及每次都要發送cookies內容,不是非常方便,因此,接下來我們介紹另外一種方法

 

使用session類來發送請求:

import requests

login_url='http://xxxx/api/v1/user/login'
userinfo={"ua":"username","pw":"password"}
myaddress_url='http://xxx/api/v1/myaddress'
test_session=requests.session()                           #使用session類生成一個對象
login=test_session.post(login_url,json=userinfo)   
myaddress=test_session.get(myaddress_url)
print(myaddress.status_code)
print(myaddress.text)

-----結果-----
200
{...}

 

至此,cookies相關的問題解決

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM