Python+requests 發送簡單請求--》獲取響應狀態--》獲取請求響應數據
1、環境:安裝了Python和vscode編譯器(Python自帶的編譯器也ok)、fiddler抓包工具(先用fiddler抓包工具獲取請求url和headers請求頭相關數據)
2、模擬向XX平台,發送新增成員編號信息,並查詢新增的成員編號信息(自己找個平台測試)
3、代碼:
import requests import json '''發送新增警員信息的http請求'''
#以字典的方式存儲需要傳遞的參數
add_url = 'http://XX.XXX.XXX.XX:端口號/car-oss/webapi/pcWatch/save' add_par = { 'pcNum':'95830', 'pcName':'測試', 'pcPhoneNum':'22345', 'orgname':'M1對講', 'watchImei':'11220' } #以字典方式儲存定制的headers請求頭信息
add_header = { 'Content-Type':'application/json', 'connection':'keep-alive' } #用戶登錄前的cookies,因為用戶登錄后才能進行新增警員信息的操作
add_cookie = { "JSESSIONID":"3E2ED9359E53D31FBD13FE2ADE9D20D2" } r = requests.post(add_url,data=json.dumps(add_par),headers=add_header,cookies=add_cookie)#參數要轉json格式傳輸要使用json.dumps()進行轉換 #以文本方式獲取請求響應內容
print(r.text) ''' 查詢上剛剛新增的那條信息 ''' Search_url='http://XX.XXX.XXX.XX:端口號/car-oss/webapi/easyflow/datatable/queryresult' Search_par={ "pageSize":10, "pageIndex":1, "orgname":"M1對講", "pcNum":"95830", "watchImei":"", "name":"pc_watch_manage" } Search_header={ 'Content-Type':'application/json' } Search_cookie={ 'JSESSIONID':'3E2ED9359E53D31FBD13FE2ADE9D20D2' } r1 = requests.post(Search_url,data=json.dumps(Search_par),headers=Search_header,cookies=Search_cookie) print(r1.text)
運行結果:
success#新增成員信息請求響應內容
{"result":true,"msg":"success","data":{"pageIndx":1,"totalSize":1,"pageSize":10,"totalPage":1,"list":[{"id":"2c9220956c99b744016d00a758356582","pcNum":"95830","pcName":"測試","pcPhoneNum":"22345","orgname":"M1對講","watchImei":"11220"}]}}#查詢剛剛新增信息請求的響應內容
4、requests常用屬性和方法
(1)發送請求后,返回各種形式的響應內容:
1)r.text:以文本格式返回響應內容
2)r.content:以字節格式返回響應內容
3)r.json():以json格式返回相應內容,因為就算請求出錯也會返回一串json格式的字符串。所以可以使用r.status_code或者r.raise_for_status來判斷響應是否成功
4)如果在原始請求中設置了stream=True,可以使用r.raw.read()