如何使用Python从urllib3请求响应中提取字节字符串
urllib3响应对象提取字节字符串操作方法
urllib3发起请求返回的HTTPResponse对象自带原始响应字节存储属性,直接读取即可拿到需要的字节内容,不需要额外做解码、解析操作,完全适配后续转图片的使用场景。
核心实现代码
import urllib3 import ssl import io from PIL import Image # 后续转PIL图片对象可引入该依赖 # 原有请求逻辑 https = urllib3.PoolManager(cert_reqs=ssl.CERT_NONE) resp = https.request( method='GET', url=f"https://smart/mem/2.0/files/{fileId}/content", headers=headers ) # 提取原始字节字符串存入变量 img_content_bytes = resp.data # 后续转图片使用示例(以PIL库为例) # img = Image.open(io.BytesIO(img_content_bytes))
注意事项
- 响应对象的
data属性返回值就是标准bytes类型,和接口返回的原始二进制内容完全一致,不要对这部分内容做decode()转字符串操作,否则会破坏图片二进制结构导致无法正常打开。 - 建议提取前先校验响应状态码,避免把接口返回的错误信息(比如权限不足、文件不存在的提示文本字节)当成图片内容处理,示例校验逻辑:
if resp.status != 200: raise RuntimeError(f"接口请求失败,状态码:{resp.status},响应内容:{resp.data.decode('utf-8', errors='ignore')}") - 你当前配置的
cert_reqs=ssl.CERT_NONE会跳过HTTPS证书校验,仅建议在测试环境使用,生产环境请配置合法证书校验逻辑规避安全风险。
内容的提问来源于stack exchange,提问作者Baba
相关产品推荐
相关产品推荐

