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.
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 | |
|---|---|---|---|
| human_curl-0.2.0.tar.gz | 40.1 kB | 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 |