在之前的文章中,我们学习在Python中使用Requests访问STEEM RPC、Python中使用urllib访问STEEM RPC、Python中使用PycURL访问STEEM RPC,原本这三把板斧足够我用了,但是阅读好些代码都是用的urllib3,所以拿来试试啦。
(图源:bing.com)
介绍
urllib3是一个强大的、健全友好的Python HTTP客户端,包括requests、pip在内的很多Python生态系统都使用了urllib3。
urllib3具有如下特性:
- 线程安全
- 连接池
- 客户端SSL/TLS校验
- 多部分编码文件上传
- 请求重试以及HTTP重定向
- gzip以及deflate编码
- HTTP以及SOCKS代理
- 100%测试覆盖
安装
urllib3是第三方的库,所以使用之前需要先安装。
pip安装的指令为:pip install urllib3
因为我安装过requests,所以会提示我已经安装啦。
代码
继续拿我们之前的命令为例来学习:
curl --data '{"jsonrpc": "2.0", "method": "call", "params": ["account_by_key_api", "get_key_references", [["STM6MGdForcZ8HskcguP84QSCb8udgz7W9yUPU5jtsAKQAxth3U16"]]], "id": 1}' https://api.steemit.com
使用urllib3改写后的简单代码为:
结果
执行结果为:
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning) {"id":1,"result":[["oflyhigh"]]}
加上这样一句就好啦urllib3.disable_warnings()
但是实际使用中,不校验证书是不安全、不被提倡的做法。如何校验证书,将在其它文章中另行阐述。
高级功能
类似keep-alive等高级功能可以通过在构建urllib3.PoolManager类实例时通过参数指定。
**
比如Keep-Alive功能,需要在上述代码中加入如下内容:
***
注:这段代码我理解有误,并非用于实现Keep-Alive功能
更多功能和详情,参考用户手册吧。
参考链接
- https://urllib3.readthedocs.io/en/latest/index.html
- 每天进步一点点:Python中使用PycURL访问STEEM RPC
- 每天进步一点点:Python中使用urllib访问STEEM RPC
- 每天进步一点点:Python中使用Requests访问STEEM RPC
This page is synchronized from the post: 每天进步一点点:Python中使用urllib3访问STEEM RPC