前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-Requests模块详解

Python-Requests模块详解

作者头像
用户9006224
发布2023-10-11 18:52:03
3070
发布2023-10-11 18:52:03
举报
文章被收录于专栏:cjz的专栏cjz的专栏

Python Requests模块详解

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

1. 发送GET请求

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

代码语言:javascript
复制
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响应解析为字典或列表

示例:

代码语言:javascript
复制
print(resp.status_code) 
print(resp.headers['Content-Type'])
print(resp.json())
3. POST请求

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

代码语言:javascript
复制
data = {'key1': 'value1', 'key2': 'value2'}
resp = requests.post(url, data=data) 

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

代码语言:javascript
复制
data = {'key': 'value'}
resp = requests.post(url, json=data)
4. 请求参数

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

代码语言:javascript
复制
params = {'key1': 'value1', 'key2': 'value2'}  
resp = requests.get(url, params=params)

这会构造一个如下的URL:

代码语言:javascript
复制
http://example.com?key1=value1&key2=value2
5. 请求头部

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

代码语言:javascript
复制
headers = {'User-Agent': 'MyBrowser'}
resp = requests.get(url, headers=headers)
6. 超时设置

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

代码语言:javascript
复制
resp = requests.get(url, timeout=3) # 设置3秒超时
7. 会话对象

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

代码语言:javascript
复制
s = requests.Session()
s.headers.update({'x-test': 'true'})

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

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

Requests模块高级用法

1. 文件上传

使用files参数上传文件:

代码语言:javascript
复制
url = 'http://example.com/upload'
files = {'file': open('report.xls', 'rb')}

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

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

代码语言:javascript
复制
files = {'file': ('report.xls', open('report.xls','rb'), 'application/vnd.ms-excel')}

上传多个文件:

代码语言:javascript
复制
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()创建连接池:

代码语言:javascript
复制
s = requests.Session()

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

自定义连接池:

代码语言:javascript
复制
adapter = HTTPAdapter(pool_connections=100, pool_maxsize=100)
s.mount('http://', adapter)
3. SSL证书验证

忽略验证:

代码语言:javascript
复制
r = requests.get(url, verify=False) 

使用系统/自定义证书:

代码语言:javascript
复制
r = requests.get(url, verify='/path/to/cert.pem')

使用证书字符串:

代码语言:javascript
复制
cert = '''-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----'''

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python Requests模块详解
    • 1. 发送GET请求
      • 2. 获取响应
        • 3. POST请求
          • 4. 请求参数
            • 5. 请求头部
              • 6. 超时设置
                • 7. 会话对象
                • Requests模块高级用法
                  • 1. 文件上传
                    • 2. 连接池
                      • 3. SSL证书验证
                      相关产品与服务
                      SSL 证书
                      腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档