Python+requests 发送简单请求--》获取响应状态--》获取请求响应数据
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()