Skip to main content

http client/server for asyncio

Project description

http client/server for asyncio

https://secure.travis-ci.org/KeepSafe/aiohttp.png https://coveralls.io/repos/KeepSafe/aiohttp/badge.png?branch=master

Requirements

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,
        read_until_eof=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.

  • read_until_eof: Read response until eof if response does not have Content-Length header.

  • 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.3 (02-27-2014)

  • Better support for server exit.

  • Read response body until eof if content-length is not defined #14

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.

Source Distribution

aiohttp-0.6.3.tar.gz (59.1 kB view details)

Uploaded Source

File details

Details for the file aiohttp-0.6.3.tar.gz.

File metadata

  • Download URL: aiohttp-0.6.3.tar.gz
  • Upload date:
  • Size: 59.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aiohttp-0.6.3.tar.gz
Algorithm Hash digest
SHA256 54249af504ae3c5bb837bf0208098296d31fad846273490d0b2b09802c1d6099
MD5 31fd67c0899c5ef434bd4a6d26f59b73
BLAKE2b-256 448e3ffa98b45e1c626753d57b6816a65dc67b7f88ce508ca442639e8831bed4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page