1.通过python代码实现get请求和post请求
需要导入模块requires
2.get请求:1.get没有参数的请求
2.get有参数的请求
3. get没有请求参数但是有header
注意:data的书写方式是字典形式的
get没有参数的请求:r=requires.get(url)
返回的三种形式: r.json() #返回的是字典
r.text # 返回的是字符串
r.content() #返回的是bytes类型
get有参数的请求 r =requires.get(url,data)
get无参数有headers r=requires.get(url,headers=header)
返回的三种形式: r.json() #返回的是字典
r.text # 返回的是字符串
r.content() #返回的是bytes类型
import datetime import requests url = 'http://api.nnzhp.cn/api/user/stu_info' req = requests.get(url,params={'stu_name':'abc'}) print(req.json()) #返回的json直接帮你转成了字典 print(req.text) #返回的就是字符串,如果返回的不是json的话,就要用它了 print(req.status_code) #返回的http状态码 print(req.content) #返回的bytes类型的,下载文件的时候用它
3.post请求:只有body,header,cookie
注意:data的书写形式是字典类型
只有body的情况:r=requires.post(url,data)
有cookie和body的情况:
header={‘cookie’:“XXXXXX”}
r=requires.post(url,data,headers=header)
有header,cookie,和body的情况:
header={“cookie”:“XXXX”,‘XX’:“XXX”}
返回的三种形式: r.json() #返回的是字典
r.text # 返回的是字符串
r.content() #返回的是bytes类型
#简单的post请求只有请求参数 url="http://api.nnzhp.cn/api/user/login" req = requests.post(url,data={"username":"niuhanyang","passwd":"aA123456"}) print(req.json()) #post有header、cookies url="https://qun.qq.com/cgi-bin/qun_mgr/get_group_list" data ={"bkn": 208992859}
#cookies作为参数 # d = {'pgv_pvi': '6636933120', 'RK': 'gRZhhBpNbS', 'ptcz': '14bab564718e3e1048a09cc0e18a23f7c51f20d5b93da610cc1427f51f63a2f8', 'pgv_pvid': '4990195883', 'ts_uid': '5190463916', 'uin': 'o0511402865', 'pgv_si': 's7505852416', 'skey': '@2ttDS8Ljw', 'p_uin': 'o0511402865', 'pt4_token': 'AgqIsYBhO1b82zx1N4SxoGpCxGV0d38ss7jCI1nYfIg_', 'p_skey': '9nlMjw4Uy44*Hu5iL3DOFonmAtZtExiniLykrsIRKmM_', 'traceid': '14035c8a79'} # req = requests.post(url,data,cookies=d)
#把cookies作为headers的参数之一 header = {'cookie':"pgv_pvi=6636933120; RK=gRZhhBpNbS; ptcz=14bab564718e3e1048a09cc0e18a23f7c51f20d5b93da610cc1427f51f63a2f8; pgv_pvid=4990195883; ts_uid=5190463916; uin=o0511402865; pgv_si=s7505852416; skey=@2ttDS8Ljw; p_uin=o0511402865; pt4_token=AgqIsYBhO1b82zx1N4SxoGpCxGV0d38ss7jCI1nYfIg_; p_skey=9nlMjw4Uy44*Hu5iL3DOFonmAtZtExiniLykrsIRKmM_; traceid=14035c8a79"} req = requests.post(url,data,headers=header) print(req.json())
上传的是json形式的参数:
import datetime import requests url="https://oapi.dingtalk.com/robot/send?access_token=44402c9408df8cf3f429c02a20399fc34604f98cf572fcaeaa3f9592426176a7" today = datetime.datetime.now() d = {"msgtype": "text","text": {"content": "现在是%s,大家不要忘记写作业哦!暗号:besttest"%today} } req = requests.post(url,json=d) print(req.json()) print(req.cookies) #获取cookies
4.上传文件:
r=requires.post(url,files={‘file’:open(‘文件名’,‘rb’)})
用session()方法请求:作用是:当我们登录一个系统后,session会自动帮我们保存cookie,然后在用session()支付接口或查看订单接口时就不用再传cookies了
r=requires.session()
r.post(url,data=data)、r.get(url,params=data)
import datetime import requests url = "http://api.nnzhp.cn/api/file/file_upload" f = open('sxy.mp4','rb') data = {'file':f} r = requests.post(url,files=data) print(r.json()) f.close()
5.下载文件
import datetime import requests url = "https://q4.qlogo.cn/g?b=qq&nk=516481&s=14" req = requests.get(url) f = open('wjl.jpg','wb') f.write(req.content) f.close()