请求pycURL的兼容接口

pycurl-requests的Python项目详细描述


PycURL请求<pycurl://☤>

PycURL Requests是与的Requests兼容的接口 PycURL。在

要求

安装

通过^{}发布的最新版本:

pip install pycurl-requests [--user]

通过Git:

^{pr2}$

快速入门

>>>importpycurl_requestsasrequests>>>r=requests.get('https://api.github.com/repos/dcoles/pycurl-requests')>>>r.status_code200>>>r.headers['content-type']'application/json; charset=utf-8'>>>r.encoding'utf-8'>>>r.text'{\n  "id": 236427187,\n...'>>>data=r.json()>>>data['name']'pycurl-requests'>>>data['html_url']'https://github.com/dcoles/pycurl-requests'>>>data['description']'A Requests-compatible interface for pycURL'

该库还可以用于运行导入requests模块的现有Python脚本。 通过pycurl_requests助手运行脚本,使用requests模块将 自动重定向到pycurl_requests。在

python3 -m pycurl_requests -- script.py arg arg...

request工具

包含基本的curl类命令行实用程序:

usage: request.py [-h] [-d DATA] [-H HEADER] [--json JSON] [-L] [-o OUTPUT]
                  [-X REQUEST] [-v]
                  url

A basic `curl`-like command-line HTTP utility

positional arguments:
  url                   URL of resource to connect to

optional arguments:
  -h, --help            show this help message and exit
  -d DATA, --data DATA  Add POST data
  -H HEADER, --header HEADER
                        Add custom request header (format: `Header: Value`)
  --json JSON           Add JSON POST data
  -L, --location        Follow redirects
  -o OUTPUT, --output OUTPUT
                        Write to file instead of stdout
  -X REQUEST, --request REQUEST
                        Request command to use (e.g. HTTP method)
  -v, --verbose         Verbose logging

这也可以与Requests库一起使用,如果 PYCURLREQUESTS_REQUESTS环境变量设置为非空值。在

文件

此库旨在与Requests兼容, 因此Requests documentation应该是 主要适用。在

卷曲选项

可以在 ^{}。在

例如,在不请求尸体的情况下提出请求:

importpycurlimportpycurl_requestsasrequestswithrequests.Session()assession:session.curl.setopt(pycurl.NOBODY,1)response=session.get('http://example.com')

请参阅^{} object文档 所有可能的curl属性方法。在

卷曲异常

全部^{} exceptions 映射到^{} (或其子类之一)。在

为了方便起见,原始的pycurl.error错误消息和 cURL error code将在异常上设置 对象作为curl_messagecurl_code属性。在

importpycurl_requestsasrequeststry:requests.get('http://connect_error')exceptrequests.RequestExceptionase:print('ERROR: {} (cURL error: {})'.format(e.curl_message,e.curl_code))

也可以使用__cause__属性获得原始的pycurl.error。在

日志

可以显示libcurl中的详细日志记录,包括信息性文本和HTTP头 通过将curl记录器(或子记录器)设置为^{} level

importlogginglogging.getLogger('curl').setLevel(logging.DEBUG)

对于每种类型的记录,日志记录被分成专用的子日志记录器:

  • curl.text-信息性文本
  • curl.header_in-从对等方接收的头数据
  • ^{cd26>发送到对等端的数据

已知限制

在不久的将来,这些特性中的大多数都应该得到支持。在

许可证

根据麻省理工学院的许可证。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ApachePOI如何通过java从excel文件中删除空白列?   linux到后台Java服务应用程序的简单发送/接收接口   java ActionBarPullToRefresh什么都没发生   java从millis获取错误的整数天   java相同的代码在两个不同的包上表现不同   java将每个新的char元素写入一个文件(如果被覆盖)   mysql如何在Java中通过外键链接的多个表中插入数据   java环境下mysql网络文件访问   java当使用构建器模式时,为什么我不应该重用builderobject来访问对象配置?   java jQueryServlet post异常失败   java应该使用什么逻辑来创建像《愤怒的小鸟》中那样的锁屏   java Android:在不滑动的情况下更改ViewPager中的片段   java在使用我的程序逻辑时获得空输出