Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 57.7MB ·虚拟内存 1300.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
超文本传输协议(HTTP)是用于启用客户端和服务器之间的通信的协议。它用作客户端和服务器之间的请求-响应协议。请求设备称为客户端,发送响应的设备称为服务器。
urllib是传统的python库,在python程序中用于处理http请求。但是现在有了urllib3,它的功能比urllib过去的要多。我们导入urllib3库,以查看python如何使用它来发出http请求并接收响应。可以通过选择请求方法来自定义请求的类型。
# Filename : example.py# Copyright : 2020 By Aizws# Author by : www.aizws.net# Date : 2020-08-25pip install urllib3
在下面的示例中,我们使用PoolManager()对象来处理http请求的连接详细信息。接下来使用request()对象通过POST方法发出一个http请求。最后,还使用json库以json格式打印接收到的值。
# Filename : example.py# Copyright : 2020 By Aizws# Author by : www.aizws.net# Date : 2020-08-25import urllib3 import json http = urllib3.PoolManager() r = http.request( 'POST', 'http://xxx.com/post', fields={'field': 'value'}) print json.loads(r.data.decode('utf-8'))['form']
还可以传递查询参数来构建自定义URL。在下面的示例中,request方法使用查询字符串中的值来完成URL,该URL可以被python程序中的另一个函数进一步使用。
# Filename : example.py# Copyright : 2020 By Aizws# Author by : www.aizws.net# Date : 2020-08-25import requests query = {'q': 'river', 'order': 'popular', 'min_width': '800', 'min_height': '600'} req = requests.get('https://xxxx.com/en/photos/', params=query) print(req.url)
执行上面示例代码,得到以下结果:
# Filename : example.py# Copyright : 2020 By Aizws# Author by : www.aizws.net# Date : 2020-08-25https://xxxx.com/en/photos/?q=river&min_width=800&min_height=600&order=popular
在接收并解释了请求消息后,服务器将以HTTP响应消息进行响应。响应消息具有状态码。它是一个三位数的整数,其中状态码的第一位数定义了响应的类别,而后两位则没有任何分类作用。第一位数字有5个值:状态码编号状态码描述1 ...