龙空技术网

软件测试/测试开发丨Python 常用第三方库 urllib3

测试人666 156

前言:

此时小伙伴们对“python常用的第三方库”大致比较讲究,你们都需要了解一些“python常用的第三方库”的相关内容。那么小编也在网摘上收集了一些对于“python常用的第三方库””的相关文章,希望朋友们能喜欢,大家一起来了解一下吧!

免费领取:测试资料+性能测试+接口测试+自动化测试+测试开发+测试用例+简历模板+测试文档 - 公众号 - 测试人社区

本文为霍格沃兹测试开发学社学员学习笔记分享

原文链接:Python 测开27期 - julia - 学习笔记 - Python 常用第三方库 urllib3 - 学习笔记 - 测试人社区

urllib3 概述线程安全连接池管理客户端 SSL/TLS 验证支持 HTTP 和 SOCKS 代理

官方文档:urllib3 2.0.4 documentation

urllib3 安装通过 pip 安装

pip install urllib3
urllib3 发送 HTTP 请求导入 urllib3 模块创建 PoolManager 实例调用 request() 方法
import urllib3def test_HTTP():    # 创建连接池对象,默认会校验证书    pm = urllib3.PoolManager()    # 发送HTTP请求    res = pm.request(method='GET', url=";)    print(type(res))
urllib3 HTTPResponse 对象status 属性headers 属性data 属性
import urllib3def test_response():    # 创建连接池对象    pm = urllib3.PoolManager()    # 发送请求    resp = pm.request(method='GET', url=";)    print(resp.status)  # 查看响应状态状态码    print(resp.headers)  # 查看响应头信息    print(resp.data)  # 查看响应原始二进制信息
urllib3 解析响应内容二进制响应内容解码JSON 字符串
import urllib3import jsondef test_response():    pm = urllib3.PoolManager()    resp = pm.request(method='GET', url=";)    # 获取二进制形式的响应内容    raw = resp.data    print(type(raw), raw)    # 使用utf-8解码成字符串    content = raw.decode('utf-8')    print(type(content), content)    # 将JSON字符串解析成字典对象    dict_obj = json.loads(content)    print(type(dict_obj), dict_obj)    print(dict_obj['origin'])
urllib3 request 请求参数语法:request(method, url, fields, headers, **)必填method:请求方式url:请求地址选填headers:请求头信息fields:请求体数据body:指定请求体类型tiemout:设置超时时间urllib3 定制请求数据定制请求头信息使用 headers 参数
import urllib3import jsondef test_headers():    pm = urllib3.PoolManager()    url = ";    # 定制请求头    headers = {'School': 'hogwarts'}    resp = pm.request('GET', url, headers=headers)
urllib3 定制请求数据定制查询字符串参数fields 参数:适用于GET, HEAD, DELETE 请求拼接url:适用于POST, PUT请求urllib3 定制请求数据
import urllib3import json# GET/HEAD/DELETE 请求def test_fields():    pm = urllib3.PoolManager()    url = ";    fields = {'school': 'hogwarts'}    resp = pm.request(method='GET', url=url, fields=fields)# POST/PUT 请求def test_urlencode():   # 从内置库urllib的parse模块导入编码方法    from urllib.parse import urlencode    pm = urllib3.PoolManager()    url = ";    # POST和PUT请求需要编码后拼接到URL中    encoded_str = urlencode({'school': 'hogwarts'})    resp = pm.request('POST', url=url+"?"+encoded_str)
urllib3 定制请求数据提交 form 表单数据类型 'Content-Type': 'multipart/form-data请求方式:POST、PUT
import urllib3import json# POST/PUT 请求def test_form():    pm = urllib3.PoolManager()    url = ";    fields = {'school': 'hogwarts'}    # fields数据会自动转成form格式提交    resp = pm.request('POST', url, fields=fields)
urllib3 定制请求数据提交 JSON 格式数据类型:'Content-Type': 'application/json'请求方式:POST、PUT
import urllib3import jsondef test_json():    pm = urllib3.PoolManager()    url = ";    # 设定请求体数据类型    headers={'Content-Type': 'application/json'}    # JSON文本数据    json_str = json.dumps({'school': 'hogwarts'})    resp = pm.request('POST', url, headers=headers, body=json_str)
urllib3 定制请求数据timeout :设置超时时间时间单位:秒值的格式:float 类型
import urllib3def test_timeout():    pm = urllib3.PoolManager()    # 访问这个地址,服务器会在3秒后响应    url = ";    # 设置超时时长    resp = pm.request(method='GET', url=url, timeout=4.0)    assert resp.status == 200
urllib3 发送 HTTPS 请求HTTPS 请求默认需要校验证书PoolManager 的 cert_reqs 参数"CERT_REQUIRED":需要校验"CERT_NONE":取消校验
import urllib3import jsondef test_HTTPS():    # 创建不校验证书的连接池对象    pm_https = urllib3.PoolManager(cert_reqs="CERT_NONE")    url = ";    # 发送HTTPS请求    resp = pm_https.request(method='GET', url=url)    print(json.dumps(resp.data.decode('utf-8')))

标签: #python常用的第三方库 #1python第三方库有哪些常用的请列举15个并详细描述