最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python接口測試之如何使用requests發(fā)起請求

 更新時間:2024年06月27日 09:30:43   作者:向陽而生_cc  
這篇文章主要介紹了Python接口測試之如何使用requests發(fā)起請求問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

認識requests模塊

1、requests介紹

requests是一個第三方庫,因此首先需要安裝這個庫,安裝三步走:

  • 安裝:pip install requests
  • 在文件中引用這個模塊:import requests
  • 使用這個庫發(fā)起一個請求(get請求、post請求等)

2、使用requests發(fā)起get或者post請求

  • 使用requests的post方法發(fā)起post請求
import requests  
resp = requests.post(api_url,json=req_data)
  • 使用requests的request方法發(fā)起post請求
import requests
  resp = requests.request("post",api_url,json=req_data)

說明:這樣做,每調用一次requests.request就會去實例化一次Session類

  • 所有的請求都在一個會話當中

如果是session鑒權或者coockies鑒權,可以直接利用Session類實例化。

這樣做了就不用額外處理了,直接利用會話對象s發(fā)起請求,如下所示:

import requests
s = requests.Session()
   resp = s.request(method,api_url,json=req_data)

3、關于post/put/delete請求中,data參數(shù)和json參數(shù)格式

  • json參數(shù)

json參數(shù):requests庫,針對請求體格式為application/json的,獨自寫了一個json參數(shù)的處理機制,數(shù)據(jù)類型是字典。因此,如果使用接送傳參,只需要將參數(shù)寫為字典的格式即可發(fā)起請求。

  • data參數(shù)

data參數(shù):data為字典類型,默認的請求體格式為的application/x-www-form-urlencoded。

4、Respobse對象

響應數(shù)據(jù)返回主要有幾下幾類:

  • resp.status_code -- 獲取響應狀態(tài)碼
  • resp.headers -- 獲取響應頭
  • resp.text -- 獲取響應數(shù)據(jù)
  • resp.json() -- 把json格式的響應數(shù)據(jù),轉換成python字典

實戰(zhàn)

1、發(fā)起post請求

  • 如何抓包獲取要模擬的接口詳情:

  • 以下編寫代碼:
import requests
 
# 請求url
url = "https://openapiv5.ketangpai.com//UserApi/login"
 
'''請求方法'''
method = "post"
# 如果是post請求,需要查看請求頭當中的content-type的數(shù)據(jù)格式類型
'''請求體數(shù)據(jù)'''
req_data = {
                "email":"18812345678",  # 隨意寫的
                "password":"f876543",   # 隨意寫的非真實
                "remember":"0","code":"",
                "mobile":"",
                "type":"login",
                "reqtimestamp":1697007648530}
 
'''第一種方法:使用requests的post方法發(fā)起post請求'''
# rt = requests.post(url=url,json=req_data)
# '''獲取響應的原始數(shù)據(jù)'''
# print(rt.text)
# '''查看獲取響應的原始數(shù)據(jù)的數(shù)據(jù)類型'''
# print(type(rt))  # <class 'requests.models.Response'>
# '''把響應的json數(shù)據(jù),轉換成python字典。'''
# print(rt.json())
# print(type(rt.json()))      # 字典類型
# print(rt.status_code,"\n",rt.headers,"\n\n",rt.cookies)
 
'''第二種方法:使用request方法發(fā)送post請求'''
respose = requests.request(method,url,json=req_data)
print(respose.text)    # 結果與上述一致
 
'''
使用session方法進行請求數(shù)據(jù)
'''
s = requests.Session()
resp = s.request(method,url,json=req_data)
print("http響應數(shù)據(jù)(原始):",resp.text)

2、發(fā)起get請求

盤點一下get請求的參數(shù):

  • params參數(shù):get請求,請求參數(shù)一般是拼接在url后面的,因此請求參數(shù)使用params參數(shù)(字典類型)
  • headers參數(shù):字典類型。用戶項目需要添加到請求頭的,傳參給它。
  • verify參數(shù):遇到發(fā)起https請求的時候,要證書。 將verify=False就可以關掉證書要求,可以發(fā)送https請求

代碼實戰(zhàn)

1、抓包找到我們要做get請求實戰(zhàn)的接口

2、使用代碼編寫get請求發(fā)送

注意:接口連貫時,需要添加鏈接點“token”,才可以獲取響應的完整信息

from time import sleep
import requests
 
# 請求url
url = "https://openapiv5.ketangpai.com//UserApi/login"
 
'''請求方法'''
method = "post"
# 如果是post請求,需要查看請求頭當中的content-type的數(shù)據(jù)格式類型
'''請求體數(shù)據(jù)'''
req_data = {
                "email":"18829489142",
                "password":"fangbang666",
                "remember":"0","code":"",
                "mobile":"",
                "type":"login",
                "reqtimestamp":1697007648530}
 
'''
連續(xù)上個文件的post請求,從登錄接口中獲取token
'''
'''
使用session方法進行請求數(shù)據(jù)
'''
s = requests.Session()
resp = s.request(method,url,json=req_data)
# print("http響應數(shù)據(jù)(原始):",resp.text)
# print(resp.json())
# 獲取token,提供給下文
token = resp.json()["data"]["token"]
 
# 暫停6秒針
sleep(6)
 
url = "https://openapiv5.ketangpai.com//TourApi/isTourV2"
method = "get"
params = {
            "version" : 32,
            "courseid" : "MDAwMDAwMDAwMLOGy5WHqbdshNtyoQ"
            }
# 往請求頭里面,添加鑒權的token處理
headers = {"token":token}
# 發(fā)請求的時候,帶上請求頭
res = requests.request(method,url,params=params,headers=headers)
print(res.text)

結果如下:

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python打印值的兩種方式及區(qū)別詳解

    Python打印值的兩種方式及區(qū)別詳解

    這篇文章主要對比了Python中print函數(shù)的逗號分隔法與f-string,指出二者在實現(xiàn)機制、性能、可讀性上存在差異,建議調試用逗號法簡便,正式代碼優(yōu)先使用f-string提升清晰度與格式化能力,強調保持代碼風格一致性的重要性,需要的朋友可以參考下
    2025-08-08
  • 離線安裝python的requests庫方法

    離線安裝python的requests庫方法

    大家好,本篇文章主要講的是離線安裝python的requests庫方法,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python+seaborn實現(xiàn)聯(lián)合分布圖的繪制

    Python+seaborn實現(xiàn)聯(lián)合分布圖的繪制

    聯(lián)合分布(Joint Distribution)圖是一種查看兩個或兩個以上變量之間兩兩相互關系的可視化圖,在數(shù)據(jù)分析操作中經(jīng)常需要用到。本文將通過seaborn實現(xiàn)繪制聯(lián)合分布圖,需要的可以參考一下
    2023-02-02
  • 利用numpy實現(xiàn)一、二維數(shù)組的拼接簡單代碼示例

    利用numpy實現(xiàn)一、二維數(shù)組的拼接簡單代碼示例

    這篇文章主要介紹了利用numpy實現(xiàn)一、二維數(shù)組的拼接簡單代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Python入門之面向對象和類

    Python入門之面向對象和類

    這篇文章主要為大家介紹了Python面向對象和類,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 利用Matplotlib實現(xiàn)單畫布繪制多個子圖

    利用Matplotlib實現(xiàn)單畫布繪制多個子圖

    這篇文章主要介紹了利用Matplotlib實現(xiàn)單畫布繪制多個子圖,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • OpenCV+python手勢識別框架和實例講解

    OpenCV+python手勢識別框架和實例講解

    今天小編就為大家分享一篇OpenCV+python手勢識別框架和實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Python列表append()函數(shù)使用方法詳解

    Python列表append()函數(shù)使用方法詳解

    python中的append()函數(shù)是在列表末尾添加新的對象,且將添加的對象最為一個整體,下面這篇文章主要給大家介紹了關于Python列表append()函數(shù)使用方法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Python數(shù)據(jù)類型之String字符串實例詳解

    Python數(shù)據(jù)類型之String字符串實例詳解

    這篇文章主要介紹了Python數(shù)據(jù)類型之String字符串,結合實例形式詳細講解了Python字符串的概念、定義、連接、格式化、轉換、查找、截取、判斷等常見操作技巧,需要的朋友可以參考下
    2019-05-05
  • python 實現(xiàn)一次性在文件中寫入多行的方法

    python 實現(xiàn)一次性在文件中寫入多行的方法

    今天小編就為大家分享一篇python 實現(xiàn)一次性在文件中寫入多行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

托里县| 和平区| 阿拉善盟| 阿勒泰市| 清苑县| 监利县| 忻州市| 固阳县| 离岛区| 沙雅县| 南宁市| 鹤壁市| 达拉特旗| 邳州市| 黄骅市| 西吉县| 桓仁| 万源市| 赣榆县| 红河县| 汝阳县| 定襄县| 资源县| 伊金霍洛旗| 元江| 安仁县| 高碑店市| 石景山区| 八宿县| 松江区| 罗平县| 合肥市| 陆河县| 玉屏| 汪清县| 饶平县| 咸阳市| 绥江县| 清河县| 黎川县| 洪江市|