Welcome to human_curl’s documentation!
Curl requests for Humans
human_curl allow you to send HEAD, GET, POST, PUT, OPTIONS, and DELETE HTTP requests.
Features
Custom HTTP headers
Request data/params
Multiple file uploading
Async requests!
Cookies support (dict or CookieJar)
Redirection history
Proxy support (http, https, socks4/5)
Custom interface for request!
Auto decompression of GZipped content
Unicode URL support
Request timers and another info
Certificate validation
ipv6 support
Basic/Digest authentication
OAuth support!
Debug request and response headers
.netrc support
Usage
Simple get request
>>> import human_curl as requests # python-requests.org compatibile
>>> # import human_curl as hurl # unfortunately hurl.it keeps this name :-)
>>> r = hurl.get('http://h.wrttn.me/basic-auth/test_username/test_password',
... auth=('test_username', 'test_password'))
>>> r.status_code
200
>>> r.content
'{"username": "test_username", "password": "test_password", "authenticated": true}'
Cookies and headers
>>> import human_curl as hurl # python-requests.org compatibile
>>> r = hurl.get("http://h.wrttn.me/cookies/set/ajfwjlknefjrrf/fkjwnfklrnjge")
>>> r.cookies
{'ajfwjlknefjrrf': 'fkjwnfklrnjge'}
>>> r.headers['etag']
bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f
>>> r.headers
{'connection': 'keep-alive',
'content-length': '2',
'content-type': 'text/html; charset=UTF-8',
'date': 'Mon, 05 Sep 2011 20:28:47 GMT',
'etag': 'bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f',
'server': 'LightBeer/0.568'}
Send files and variables
>>> import human_curl as hurl
>>> r = hurl.post('http://h.wrttn.me/post', files=(('file_1', '/tmp/testfile1.txt'),
... ('file2', open('/tmp/testfile2.txt'))), data={'var_name': 'var_value'})
>>> r.status_code
201
Redirects
>>> import human_curl as hurl
>>> r = hurl.get('http://h.wrttn.me/redirect/4', allow_redirects=True)
>>> r.status_code
200
>>> print(r.history)
['http://h.wrttn.me/redirect/3', 'http://h.wrttn.me/redirect/2',
'http://h.wrttn.me/redirect/1', 'http://h.wrttn.me/redirect/end']
>>> print(r.url)
http://h.wrttn.me/redirect/end
Auth managers
>>> import human_curl as hurl
>>> from human_curl.auth import BasicAuth, DigestAuth
>>> auth_manager = DigesAuth('username', 'password')
>>> r = hurl.post('http://h.wrttn.me/digest-auth/auth/username/password',
... auth=auth_manager)
>>> r.status_code
200
>>> basic_auth_manager = BasicAuth('username', 'password')
>>> r = hurl.post('http://h.wrttn.me/basic-auth/username/password',
... auth=basic_auth_manager)
>>> r.status_code
200
>>> oauth_manager = OAuthManager((CONSUMER_KEY, CONSUMER_SECRET), (TOKEN_KEY, TOKEN_SECRET))
>>> r = hurl.get('http://oauth-protected.com/resource', auth=oauth_manager)
>>> r.status_code
200
Debug requests
>>> import human_curl as hurl
>>> # stdout_debug(debug_type, debug_msg)
>>> r = hurl.get("https://h.wrttn.me/basic-auth/username/password",
... debug=stdout_debug, allow_redirects=False,
... auth=("username", "password"))
>>> print(r.status_code)
200
Async requests
>>> from human_curl.async import AsyncClient
>>> async_client = AsyncClient(success_callback=lambda **kw: print kw,
... fail_callback=lambda **kw: print kw)
>>> async_client.get('http://h.wrttn.me/get')
>>> async_client.get('http://httpbin.org/get',
... success_callback=lambda **kw: print("success!"),
... fail_callback=lambda **kw: print("fail!")
>>> async_client.start()
TODO
curl command generation?
INSTALLATION
To use human_curl use pip or easy_install:
pip install human_curl
or
easy_install human_curl
CONTRIBUTE
Fork https://github.com/Lispython/human_curl/ , create commit and pull request to develop.
SEE ALSO
If you don’t like cURL (why?), try to use python-requests.
Metadata
Release files for human_curl 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| human_curl-0.2.0.tar.gz | 40.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| human_curl-0.2.0.linux-i686.exe | Details |
Total release size: 134.1 kB
Release files / human_curl-0.2.0.tar.gz
| Download URL | human_curl-0.2.0.tar.gz |
|---|---|
| Size | 40.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
56fdcd92ff3ad001c71ff2eeddf9a1bf7bc5dbc9bfb7374964c87cd116b9c804
|
|
BLAKE2b-256 checksum How to use checksums |
70ffabf576a8a937c11405f7ebcda69b25906cba080f884215be0eb6442e00a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / human_curl-0.2.0.linux-i686.exe
| Download URL | human_curl-0.2.0.linux-i686.exe |
|---|---|
| Size | 94.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0d6130c195348e4a96e51028035816aa863dc296945255c6877a59af6fd5887
|
|
BLAKE2b-256 checksum How to use checksums |
b371fa75bad60075f8134e5d99af5f3bca01928ddcf9832017f4dabbbb80d2ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for human_curl 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.