使用Python发送HTTP请求调用接口

记录一下接口请求的方法

# 导入requests包
import requests

Requests常用参数

method: 请求方式 get,或者 post,put,delete 等
url 请求的: url 地址 接口文档标注的接口请求地址
params:请求数据中的链接,常见的一个 get 请求,请求参数都是在 url 地址中
data :请求数据,参数 表单的数据格式
json: 接口常见的数据请求格式
headers:请求头信息,http 请求中,比如说编码方式等内容添加
cookie:保存的用户登录信息,比如做一些充值功能,但是需要用户已经登录,需要 cookie 信息的请求信息传输
file:接口中上传文件
timeout :超时处理 proxys 设置代理
stream :文件下载功能,通过请求方式,下载文件

Requests响应内容

r.encoding #获取当前的编码
r.encoding = 'utf-8' #设置编码
r.text #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.cookies #返回cookie
r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.status_code #响应状态码
r.json() #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.content #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。

Post请求

# 导入requests包
import requests
 
url = "http://localhost:65375/Login/Demo"
mydata = {"BanJName": str(vido_me), "NianJiBH": "112", "BianHao": "11",
"ZuZhi": "123"}  # 字典格式,推荐使用,它会自动帮你按照k-v拼接url
res = requests.post(url=url, data=mydata)

print('url:', res.request.body)  # 查看发送的url
print("response:", res.text)  # 返回请求结果

Get请求

# 导入requests包
import requests
 
url = "http://www.tuling123.com/openapi/api"
myParams = {"key":"username","info":"plusroax"} # 字典格式,推荐使用,它会自动帮你按照k-v拼接url
res = requests.get(url=url, params=myParams)
 
print('url:',res.request.url)# 查看发送的url
print("response:",res.text)  # 返回请求结果

Https请求

当协议是 https 的协议的时候,有些系统,需要校验 https 证书,如果校验失败,可能会有警告提示等信息

import requests 
url="https://www.ctrip.com/" 
#解决方案 # 发送请求时候忽略证书,证书的参数 verify-用的比较多 r=requests.get(url=url,verify=False) #verify 参数默认为 True,值为 False 表示忽略证书 
print (r.text) 
#第二种解决方案,verify 里面添加证书的路径 
r=requests.get(url=url,verify='证书的路径') 
print (r.text)

上传文件

import requests

url = 'https://127.0.0.1:8000/UploadPhoto'  
#filename 为 liang.jpg 文件
#open('D:\\test_data\\liang.jpg','rb') 打开本地的一个文件 
files = {'file':open('D:\\test_data\\liang.jpg','rb')}
r=requests.post(url=url,files=files,verify=False) 
print (r.text)

Requests 中 timeout 参数

1、python 的requests请求都可以使用timeout参数。
2、timeout参数可以传入一个简单的浮点数,它将请求的连接部分和读取部分设为相同的超时时间。
3、timeout参数也可以传入一个包含两个简单浮点数的元组,用来分别设置请求超时时间和读取超时时间。
4、参数值设为None或者不设置该参数为一直等待,知道请求成功或错误

 

url = "http://127.0.0.1:66753/login"
# 表单数据格式,参数 data ,数据都是字典去保存
data = {"username": "liang001", "password": "123456"}
r_login = requests.post(url=url, json=data, timeout=0.5)
print(r_login.text)

访问需要登录的界面

# 导入requests包
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0'
}

session = requests.session()

# 1.代码登录
login_url = url


login_form_data = {
        'UserName': name, # 登录用户名
        'PassWord': pwd,  # 登录密码
    }


login_resopnse = session.post(login_url, data=login_form_data, headers=headers)
# 2.登录成功后,带着有效的cookie访问member_url
files = {'file': open(r'路径', 'rb')}
member_url = 'url'
member_data = session.post(member_url, headers=headers, files=files)

print(member_data.text)

物联沃分享整理
物联沃-IOTWORD物联网 » 使用Python发送HTTP请求调用接口

发表评论