
- Python - 网络编程
- Python - 网络概述
- Python - 网络环境
- Python - 互联网协议
- Python - IP 地址
- Python - DNS 查询
- Python - 路由
- Python - HTTP 请求
- Python - HTTP 响应
- Python - HTTP 头部
- Python - 自定义 HTTP 请求
- Python - 请求状态码
- Python - HTTP 认证
- Python - HTTP 数据下载
- Python - 连接重用
- Python - 网络接口
- Python - 套接字编程
- Python - HTTP 客户端
- Python - HTTP 服务器
- Python - 构建 URL
- Python - Web 表单提交
- Python - 数据库和 SQL
- Python - Telnet
- Python - 邮件消息
- Python - SMTP
- Python - POP3
- Python - IMAP
- Python - SSH
- Python - FTP
- Python - SFTP
- Python - Web 服务器
- Python - 上传数据
- Python - 代理服务器
- Python - 目录列表
- Python - 远程过程调用
- Python - RPC JSON 服务器
- Python - 谷歌地图
- Python - RSS Feed
Python - 自定义 HTTP 请求
超文本传输协议 (HTTP) 是一种用于启用客户端和服务器之间通信的协议。它作为客户端和服务器之间的请求-响应协议工作。请求设备称为客户端,发送响应的设备称为服务器。
urllib 是传统的 Python 库,在 Python 程序中用于处理 http 请求。但现在有 urllib3,它比 urllib 做得更多。我们导入 urllib3 库来了解 Python 如何使用它来发出 http 请求并接收响应。我们可以通过选择请求方法来自定义请求类型。
Pip install urllib3
示例
在下面的示例中,我们使用 PoolManager() 对象来处理 http 请求的连接详细信息。接下来,我们使用 request() 对象使用 POST 方法发出 http 请求。最后,我们还使用 json 库以 json 格式打印接收到的值。
import urllib3 import json http = urllib3.PoolManager() r = http.request( 'POST', 'http://httpbin.org/post', fields={'field': 'value'}) print json.loads(r.data.decode('utf-8'))['form']
运行上述程序后,我们将获得以下输出 -
{field': value'}
使用查询的 URL
我们还可以传递查询参数来构建自定义 URL。在下面的示例中,请求方法使用查询字符串中的值来完成 URL,该 URL 可以由 Python 程序中的另一个函数进一步使用。
import requests query = {'q': 'river', 'order': 'popular', 'min_width': '800', 'min_height': '600'} req = requests.get('https://pixabay.com/en/photos/', params=query) print(req.url)
运行上述程序后,我们将获得以下输出 -
https://pixabay.com/en/photos/?q=river&min_width=800&min_height=600&order=popular
广告