http client/server for asyncio
Project description
http client/server for asyncio
Requirements
Python >= 3.3
License
aiohttp is offered under the BSD license.
Getting started
To retrieve something from the web:
import aiohttp def get_body(url): response = yield from request('GET', url) return (yield from response.read())
You can use the get command like this anywhere in your asyncio powered program:
response = yield from aiohttp.request('GET', 'http://python.org') body = yield from response.read() print (body)
The signature of request is the following:
request(method, url, *, params=None, data=None, headers=None, cookies=None, files=None, auth=None, allow_redirects=True, max_redirects=10, encoding='utf-8', version=(1, 1), timeout=None, conn_timeout=None, compress=None, chunked=None, expect100=False, session=None, verify_ssl=True, loop=None )
It constructs and sends a request. It returns response object. Parameters are explained as follow:
method: HTTP method
url: Request url
params: (optional) Dictionary or bytes to be sent in the query string of the new request
data: (optional) Dictionary, bytes, or file-like object to send in the body of the request
headers: (optional) Dictionary of HTTP Headers to send with the request
cookies: (optional) Dict object to send with the request
files: (optional) Dictionary of ‘name’: file-like-objects for multipart encoding upload
auth: (optional) Auth tuple to enable Basic HTTP Auth
timeout: (optional) Float describing the timeout of the request
conn_timeout: (optional) Float describing the timeout of the tcp connection
allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.
compress: Boolean. Set to True if request has to be compressed with deflate encoding.
chunked: Boolean or Integer. Set to chunk size for chunked transfer encoding.
expect100: Boolean. Expect 100-continue response from server.
session: aiohttp.Session instance to support connection pooling and session cookies.
loop: Optional event loop.
Gunicorn worker
Paster configuration example:
[server:main] use = egg:gunicorn#main host = 0.0.0.0 port = 8080 worker_class = aiohttp.worker.AsyncGunicornWorker
CHANGES
0.6.2 (02-18-2014)
Fix trailing char in allowed_methods.
Start slow request timer for first request.
0.6.1 (02-17-2014)
Added utility method HttpResponse.read_and_close()
Added slow request timeout.
Enable socket SO_KEEPALIVE if available. (@polymorphm)
0.6.0 (02-12-2014)
Better handling for process exit.
0.5.0 (01-29-2014)
Allow to use custom HttpRequest client class.
Use gunicorn keepalive setting for async worker.
Log leaking responses.
python 3.4 compatibility
0.4.4 (11-15-2013)
Resolve only AF_INET family, because it is not clear how to pass extra info to asyncio.
0.4.3 (11-15-2013)
Allow to wait completion of request with HttpResponse.wait_for_close()
0.4.2 (11-14-2013)
Handle exception in client request stream.
Prevent host resolving for each client request.
0.4.1 (11-12-2013)
Added client support for expect: 100-continue header.
0.4 (11-06-2013)
Added custom wsgi application close procedure
Fixed concurrent host failure in HttpClient
0.3 (11-04-2013)
Added PortMapperWorker
Added HttpClient
Added tcp connection timeout to http client
Better client connection errors handling
Gracefully handle process exit
0.2
Fix packaging
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.