Python-Requests模块详解

Python Requests模块详解

Requests模块是Python中最简单易用的HTTP客户端库,可以极大简化发送HTTP请求的代码

1. 发送GET请求

使用requests.get()发送GET请求,只需要传入URL即可:

import requests

resp = requests.get('http://example.com/api')

此外还可以传入其他参数,如headers, params等。

2. 获取响应

发送请求后可以获取Server响应信息:

  • resp.status_code: 响应状态码
  • resp.headers: 响应头部信息
  • resp.text/content: 响应内容,text为字符串,content为字节
  • resp.json(): 将JSON响应解析为字典或列表

示例:

print(resp.status_code) 
print(resp.headers['Content-Type'])
print(resp.json())

3. POST请求

使用requests.post()发送POST请求,传入data作为POST body:

data = {'key1': 'value1', 'key2': 'value2'}
resp = requests.post(url, data=data) 

也可以传入json参数发送JSON格式的数据:

data = {'key': 'value'}
resp = requests.post(url, json=data)

4. 请求参数

通过params参数传递URL查询参数:

params = {'key1': 'value1', 'key2': 'value2'}  
resp = requests.get(url, params=params)

这会构造一个如下的URL:

http://example.com?key1=value1&key2=value2

5. 请求头部

通过headers参数设置HTTP头部信息:

headers = {'User-Agent': 'MyBrowser'}
resp = requests.get(url, headers=headers)

6. 超时设置

通过timeout参数设置超时时长(秒):

resp = requests.get(url, timeout=3) # 设置3秒超时

7. 会话对象

使用requests.Session()创建会话对象,用于跨请求保持参数:

s = requests.Session()
s.headers.update({'x-test': 'true'})

resp1 = s.get(url1)  
resp2 = s.get(url2)

此外,Requests模块还支持文件上传、连接池、SSL证书验证等高级功能,非常强大!

Requests模块高级用法

1. 文件上传

使用files参数上传文件:

url = 'http://example.com/upload'
files = {'file': open('report.xls', 'rb')}

r = requests.post(url, files=files)

可以设置文件名、文件对象和MIME类型:

files = {'file': ('report.xls', open('report.xls','rb'), 'application/vnd.ms-excel')}

上传多个文件:

files = {
    'file1': ('image.jpg', open('image.jpg','rb'), 'image/jpeg'),
    'file2': ('report.xls', open('report.xls','rb'), 'application/vnd.ms-excel')
}

r = requests.post(url, files=files)

2. 连接池

使用requests.Session()创建连接池:

s = requests.Session()

s.get('http://httpbin.org/get')  
s.get('http://httpbin.org/get') 

自定义连接池:

adapter = HTTPAdapter(pool_connections=100, pool_maxsize=100)
s.mount('http://', adapter)

3. SSL证书验证

忽略验证:

r = requests.get(url, verify=False) 

使用系统/自定义证书:

r = requests.get(url, verify='/path/to/cert.pem')

使用证书字符串:

cert = '''-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----'''

r = requests.get(url, verify=cert)

以上是对Requests模块文件上传、连接池和SSL证书验证等高级功能的详细介绍。

以上概括了Requests最主要的用法,希望对你有帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值