2017-04-26 21:49:58 +00:00
|
|
|
sprockets.mixins.http
|
|
|
|
=====================
|
|
|
|
HTTP Client Mixin for Tornado RequestHandlers.
|
|
|
|
|
|
|
|
|Version| |Travis| |CodeCov| |Docs|
|
|
|
|
|
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
``sprockets.mixins.http`` is available on the
|
|
|
|
`Python Package Index <https://pypi.python.org/pypi/sprockets.mixins.http>`_
|
|
|
|
and can be installed via ``pip`` or ``easy_install``:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
pip install sprockets.mixins.http
|
|
|
|
|
2017-04-27 02:50:14 +00:00
|
|
|
If you would like to use `tornado.curl_httpclient.CurlAsyncHTTPClient`,
|
2017-04-27 02:29:04 +00:00
|
|
|
you can install `pycurl <http://pycurl.io>`_ with:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
pip install sprockets.mixins.http[curl]
|
|
|
|
|
2017-04-26 21:49:58 +00:00
|
|
|
Documentation
|
|
|
|
-------------
|
2017-04-27 02:50:14 +00:00
|
|
|
http://pythonhosted.org/sprockets.mixins.http/
|
2017-04-26 21:49:58 +00:00
|
|
|
|
|
|
|
Requirements
|
|
|
|
------------
|
2017-04-27 02:29:04 +00:00
|
|
|
- `tornado <https://tornadoweb.org>`_ >=4.2.0,<5
|
2017-04-26 21:49:58 +00:00
|
|
|
|
|
|
|
Example
|
|
|
|
-------
|
|
|
|
|
|
|
|
This examples demonstrates the most basic usage of ``sprockets.mixins.http``
|
|
|
|
|
|
|
|
.. code:: python
|
|
|
|
|
2017-04-27 02:19:48 +00:00
|
|
|
from tornado import gen, ioloop, web
|
|
|
|
from sprockets.mixins import http
|
2017-04-26 21:49:58 +00:00
|
|
|
|
|
|
|
|
2017-04-27 02:19:48 +00:00
|
|
|
class RequestHandler(http.HTTPClientMixin, web.RequestHandler):
|
2017-04-26 21:49:58 +00:00
|
|
|
|
|
|
|
@gen.coroutine
|
|
|
|
def get(self, *args, **kwargs):
|
2017-04-27 02:19:48 +00:00
|
|
|
response = yield self.http_fetch('https://api.github.com')
|
|
|
|
if not response.ok:
|
|
|
|
self.set_status(response.code)
|
|
|
|
self.write(response.body)
|
|
|
|
self.finish()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
app = web.Application([web.url(r'/', RequestHandler)])
|
|
|
|
app.listen(8000)
|
|
|
|
ioloop.IOLoop.current().start()
|
|
|
|
|
2017-04-26 21:49:58 +00:00
|
|
|
|
2017-04-27 02:29:04 +00:00
|
|
|
As with Tornado, to use the curl client which has numerous benefits:
|
|
|
|
|
|
|
|
.. code:: python
|
|
|
|
|
|
|
|
from tornado import gen, httpclient, ioloop, web
|
|
|
|
from sprockets.mixins import http
|
|
|
|
|
|
|
|
httpclient.AsyncHTTPClient.configure(
|
|
|
|
'tornado.curl_httpclient.CurlAsyncHTTPClient')
|
|
|
|
|
|
|
|
|
|
|
|
class RequestHandler(http.HTTPClientMixin, web.RequestHandler):
|
|
|
|
|
|
|
|
@gen.coroutine
|
|
|
|
def get(self, *args, **kwargs):
|
|
|
|
response = yield self.http_fetch('https://api.github.com')
|
|
|
|
if not response.ok:
|
|
|
|
self.set_status(response.code)
|
|
|
|
self.write(response.body)
|
|
|
|
self.finish()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
app = web.Application([web.url(r'/', RequestHandler)])
|
|
|
|
app.listen(8000)
|
|
|
|
ioloop.IOLoop.current().start()
|
|
|
|
|
2017-04-26 21:49:58 +00:00
|
|
|
License
|
|
|
|
-------
|
|
|
|
``sprockets.mixins.http`` is released under the `3-Clause BSD license <https://github.com/sprockets/sprockets.mixins.http/blob/master/LICENSE>`_.
|
|
|
|
|
|
|
|
.. |Version| image:: https://badge.fury.io/py/sprockets.mixins.http.svg?
|
|
|
|
:target: http://badge.fury.io/py/sprockets.mixins.http
|
|
|
|
|
|
|
|
.. |Travis| image:: https://travis-ci.org/sprockets/sprockets.mixins.http.svg?branch=master
|
|
|
|
:target: https://travis-ci.org/sprockets/sprockets.mixins.http
|
|
|
|
|
|
|
|
.. |CodeCov| image:: http://codecov.io/github/sprockets/sprockets.mixins.http/coverage.svg?branch=master
|
|
|
|
:target: https://codecov.io/github/sprockets/sprockets.mixins.http?branch=master
|
|
|
|
|
|
|
|
.. |Docs| image:: https://img.shields.io/badge/docs-pythonhosted-green.svg
|
2017-04-27 02:50:14 +00:00
|
|
|
:target: http://pythonhosted.org/sprockets.mixins.http/
|