• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.gitignoreH A D31-Jan-2016164 1514

AUTHORS.rstH A D31-Jan-2016235 128

LICENSEH A D31-Jan-20161.3 KiB86

README.rstH A D31-Jan-20161.5 KiB6442

grequests.pyH A D31-Jan-20164.8 KiB154109

requirements.pyH A D31-Jan-201621 43

setup.pyH A D31-Jan-20162.3 KiB9672

tests.pyH A D03-May-20227.5 KiB236188

README.rst

1GRequests: Asynchronous Requests
2===============================
3
4GRequests allows you to use Requests with Gevent to make asynchronous HTTP
5Requests easily.
6
7
8Usage
9-----
10
11Usage is simple:
12
13.. code-block:: python
14
15    import grequests
16
17    urls = [
18        'http://www.heroku.com',
19        'http://python-tablib.org',
20        'http://httpbin.org',
21        'http://python-requests.org',
22        'http://fakedomain/',
23        'http://kennethreitz.com'
24    ]
25
26Create a set of unsent Requests:
27
28.. code-block:: python
29
30    >>> rs = (grequests.get(u) for u in urls)
31
32Send them all at the same time:
33
34.. code-block:: python
35
36    >>> grequests.map(rs)
37    [<Response [200]>, <Response [200]>, <Response [200]>, <Response [200]>, None, <Response [200]>]
38
39Optionally, in the event of a timeout or any other exception during the connection of
40the request, you can add an exception handler that will be called with the request and
41exception inside the main thread:
42
43.. code-block:: python
44
45    >>> def exception_handler(request, exception):
46    ...    print "Request failed"
47
48    >>> reqs = [
49    ...    grequests.get('http://httpbin.org/delay/1', timeout=0.001),
50    ...    grequests.get('http://fakedomain/'),
51    ...    grequests.get('http://httpbin.org/status/500')]
52    >>> grequests.map(reqs, exception_handler=exception_handler)
53    Request failed
54    Request failed
55    [None, None, <Response [500]>]
56
57
58Installation
59------------
60
61Installation is easy with pip::
62
63    $ pip install grequests
64