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