- Python >= 3.3
- asyncio https://pypi.python.org/pypi/asyncio/0.1.1
aiohttp
is offered under the BSD license.
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 methodurl
: Request urlparams
: (optional) Dictionary or bytes to be sent in the query string of the new requestdata
: (optional) Dictionary, bytes, or file-like object to send in the body of the requestheaders
: (optional) Dictionary of HTTP Headers to send with the requestcookies
: (optional) Dict object to send with the requestfiles
: (optional) Dictionary of 'name': file-like-objects for multipart encoding uploadauth
: (optional) Auth tuple to enable Basic HTTP Authtimeout
: (optional) Float describing the timeout of the requestconn_timeout
: (optional) Float describing the timeout of the tcp connectionallow_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.
Paster configuration example:
[server:main]
use = egg:gunicorn#main
host = 0.0.0.0
port = 8080
worker_class = aiohttp.worker.AsyncGunicornWorker