Requests库

一、安装Requests

pip install requests

二、基本用法

一、导入库

import requests

二、发送请求

一、发送GET请求

基础使用

requests.get(url='网址')

 如何将htttp://ip/expaml?size=1000&page=0进行使用,也是可以直接传入网址,但是get方法中也有类似post方法将参数传入params,代码如下

data = {"size":1000,'page':0}
# 在进行请求时会将网址拼完整
requests.get(url='http://ip/网址',params=data1)

生成的网址为 http://ip/网址?size=1000&page=0

二、发送POST请求

 基础用法

url = '网址'
data = 参数
response = requests.post(url, data=data)

请求参数详解:

  • data 参数用于发送表单数据(application/x-www-form-urlencoded 格式):

 注意,当时使用data参数传参是,如果参数类型为json格式,接口会报错415,这个时候需要使用个headers参数和将data的数据转成json格式

url = '网址'
data = 参数
headers = {'Content-Type': 'application/json'}
# 普通使用
response = requests.post(url, data=data)

# 当data参数为字典,但是接口传入的是json
response = requests.post(url, data=json.dumps(data),headers=headers)
  • json 参数用于发送 JSON 格式的数据:
url = '网址'
data = 参数
response = requests.post(url, json=data)

 注意:如果表单数据为json格式,但是使用data进行传递的话需要再使用json模块进行转换,并且需要声明请求格式

import json

import requests

url = '网址'
data = 参数
data1=json.dumps(data)
headers = {'Content-Type': 'application/json;charset=UTF-8'}
response = requests.post(url=url, data=data1, headers=headers)
print(response.status_code)

​
  • 上传头像
import requests

url = '网址'
# 传入需要上传的图片
files = {'file': open('error.png', 'rb')}
re = requests.post(url=url, files=files)
print(re.status_code)

三、响应处理

一、获取响应文本

1、获取文本格式

使用response.text获取

# 获取文本格式
response.text

2、获取json格式

使用response.json()

# 获取json格式
response.json()

3、获取二进制格式

使用response.content获取二进制格式(图片,视频等)

# 将图片进行保存
with open('image.png', 'wb') as f:
    f.write(response.content)

二、 获取响应状态

一、获取响应状态码

使用response.status_code进行获取

print(response.status_code)

二、获取请求头

使用response.headers进行获取

print(response.headers)

三、获取接口的请求地址

使用response.url获取接口(使用于框架拼接而成的接口)

print(response.url)

四、获取接口重定向url

使用response.history进行获取,返回的是一个列表,如果请求的接口用到重定向,可以使用该方法来获取重定向链中的每个URL。

print(response.history)

四、超时

在request.get()或者requests.post()中添加timeout参数设置超时时间

response = requests.post(url='网址', data=files,timeout=5)

五、会话对象 Session

一、简介

​使用requests.Session对象可以在多个请求之间保持会话,其HTTP请求方法与requests的请求方法一致。提供一种持久性的会话,允许在多个请求之间保持cookie、header和连接池等配置参数的共享,这样可以重用同一连接,而不是为每个请求创建一个新的连接。

二、如何使用?

一、创建会话

使用requests.Session()进行创建

# 创建会话
session = requests.Session()

 二、访问请求

访问请求使其与requests的请求方式一样

# 进行get请求
session.get("https://www.baidu.com")
# 发送post请求
session.post("https://www.baidu.com", data={})

三、设置共享headers

使用session.headers.update()进行设置请求头,设置完成之后后续的接口将继承使用一个一个请求头

import requests

# 创建会话
session = requests.Session()
response = session.post("网址", json={"loginname": "guest", "password": "guest"})
print(response.json()['token'])
# 将token放入请求头让后面面的接口可以重复使用
session.headers.update({"Authorization": "Bearer " + response.json()['token']})
response1 = session.get("网址")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值