📜  Python自定义HTTP请求

📅  最后修改于: 2020-11-06 06:28:09             🧑  作者: Mango


超文本传输协议(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。在下面的示例中,request方法使用查询字符串的值来完成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