python--网络编程--request函数

1、requests是使用Apache2 licensed 许可证的HTTP库。

用python编写。

比urllib2模块更简洁。

Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。

2、请求方式

import datetime

import requests
url = 'http://ip:port/api/user/stu_info'


1)get请求
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类型的,下载文件的时候用它

2)post请求
url="http://ip:port/api/user/login"
req = requests.post(url,data={"username":"niuhanyang","passwd":"aA123456"})
print(req.json())

3)发送header、cookie
url="https://qun.qq.com/cgi-bin/qun_mgr/get_group_list"
data ={"bkn": xxx}

d = {'pgv_pvi': '6636933120', 'RK': 'gRZhhBpNbS', 'ptcz': '14bab564718e3e1048a09cc0e18a23f7c51f20d5b93da610cc1427f51f63a2f8', 'pgv_pvid': '4990195883', 'ts_uid': '111111111', 'uin': 'o123456', 'pgv_si': 's7505852416', 'skey': '@2ttDS8Ljw', 'p_uin': 'o0111111', 'pt4_token': 'AgqIsYBhO1b82zx1N4SxoGpCxGV0d38ss7jCI1nYfIg_', 'p_skey': '9nlMjw4Uy44*Hu5iL3DOFonmAtZtExiniLykrsIRKmM_', 'traceid': '14035c8a79'}
req = requests.post(url,data,cookies=d)

header = {'cookie':"pgv_pvi=6636933120; RK=gRZhhBpNbS; ptcz=14bab564718e3e1048a09cc0e18a23f7c51f20d5b93da610cc1427f51f63a2f8; pgv_pvid=4990195883; ts_uid=1111111111111; uin=o012345678; pgv_si=s7505852416; skey=@2ttDS8Ljw; p_uin=o11111111; pt4_token=AgqIsYBhO1b82zx1N4SxoGpCxGV0d38ss7jCI1nYfIg_; p_skey=9nlMjw4Uy44*Hu5iL3DOFonmAtZtExiniLykrsIRKmM_; traceid=14035c8a79"}
req = requests.post(url,data,headers=header)
print(req.json())

url="https://oapi.dingtalk.com/robot/send?access_token=XXX"
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

data={
"msgtype": "text",
"text": {
"content": "记得写作业,暗号:besttest"
},
"at": {
"atMobiles": [
"1565XXX"
],
"isAtAll":False#是否@所有人
}
}
req = requests.post(url,json=data)
print(req.json())
print(req.cookies) #获取cookies


4)下载文件
url = "https://q4.qlogo.cn/g?b=qq&nk=XXX&s=140"
req = requests.get(url)

f = open('xx.jpg','wb')
f.write(req.content)
f.close()


5)上传文件
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()

参考博客:https://www.cnblogs.com/lanyinhao/p/9634742.html

猜你喜欢

转载自www.cnblogs.com/znkanchai/p/12989215.html