Simple cURL wrapper for Humans
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file human_curl-0.2.0.tar.gz
.
File metadata
- Download URL: human_curl-0.2.0.tar.gz
- Upload date:
- Size: 40.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56fdcd92ff3ad001c71ff2eeddf9a1bf7bc5dbc9bfb7374964c87cd116b9c804 |
|
MD5 | 1875a8244fe35d27944b07ebfc132145 |
|
BLAKE2b-256 | 70ffabf576a8a937c11405f7ebcda69b25906cba080f884215be0eb6442e00a9 |
File details
Details for the file human_curl-0.2.0.linux-i686.exe
.
File metadata
- Download URL: human_curl-0.2.0.linux-i686.exe
- Upload date:
- Size: 94.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0d6130c195348e4a96e51028035816aa863dc296945255c6877a59af6fd5887 |
|
MD5 | de9fc2837fd560604abf4e3a16a008f9 |
|
BLAKE2b-256 | b371fa75bad60075f8134e5d99af5f3bca01928ddcf9832017f4dabbbb80d2ba |