Kenneth Reitz 9f9ebecec2 v0.2.1
2011-02-14 10:35:15 -05:00
2011-02-14 00:23:46 -05:00
2011-02-14 10:35:15 -05:00
2011-02-14 01:47:10 -05:00
2011-02-14 10:35:15 -05:00
2011-02-13 13:53:01 -05:00
2011-02-14 02:49:18 -05:00
2011-02-14 08:55:24 -05:00
2011-02-14 10:35:15 -05:00

Requests: The Simple (e.g. usable) HTTP Module
==============================================

Most existing Python modules for dealing HTTP requests are insane. I have to look up *everything* that I want to do. Most of my worst Python experiences are a result of the various built-in HTTP libraries (yes, even worse than Logging). 

But this one's different. This one's going to be awesome. And simple.

Really simple. 

Features
--------

- Extremely simple GET, HEAD, POST, PUT, DELETE Requests
    + Simple HTTP Header Request Attachment
    + Simple Data/Params Request Attachment
- Simple Basic HTTP Authentication
    + Simple URL + HTTP Auth Registry


Usage
-----

It couldn't be simpler. ::

    >>> import requests
    >>> r = requests.get('http://google.com')


HTTPS? Basic Authentication? ::
    
    >>> r = requests.get('https://convore.com/api/account/verify.json')
    >>> r.status_code
    401

    
Uh oh, we're not authorized! Let's add authentication. ::
    
    >>> conv_auth = requests.AuthObject('requeststest', 'requeststest')
    >>> r = requests.get('https://convore.com/api/account/verify.json', auth=conv_auth)
    
    >>> r.status_code
    200 
    
    >>> r.headers['content-type']
    'application/json'
    
    >>> r.content
    '{"username": "requeststest", "url": "/users/requeststest/", "id": "9408", "img": "censored-long-url"}'



API
---
    
**Requests:**

All request functions return a Response object (see below).
    
  GET Requests
    >>> request.get(url, params={}, headers={} auth=None)
    <request object>
    
  HEAD Requests
    >>> request.head(url, params={}, headers={} auth=None)
    <request object>
    
  PUT Requests
    >>> request.put(url, data='', headers={}, auth=None)
    <request object>
    
  POST Requests
    >>> request.post(url, data={}, headers={}, auth=None)
    <request object>
    
  DELETE Requests
    >>> request.delete(url, params={}, headers={}, auth=None)
    <request object>
    

**Responses:**
    
    Request.status_code:
         (Integer) Received HTTP Status Code Response

    Request.headers:
        (Dictionary) Received HTTP Response Headers

    Request.content:
        (Bytes) Received Content

    Request.url
        (String) URL of response. Useful for detecting redirects. 


**HTTP Authentication Registry:**

    You can register AuthObjects to automatically enable HTTP Authentication on requests that contain a registered base URL string.

    >>> requests.add_autoauth(url, authobject)



Installation
------------

To install requests, simply: ::

    $ pip install requests
    
Or, if you absolutely must: ::

    $ easy_install requests

But, you really shouldn't do that.
   


Contribute
----------

If you'd like to contribute, simply fork `the repository`_, commit your changes to the **develop** branch (or branch off of it), and send a pull request. Make sure you add yourself to AUTHORS_.



Roadmap
-------

- Sphinx Documentation
- Exhaustive Unittests

.. _`the repository`: http://github.com/kennethreitz/requests
.. _AUTHORS: http://github.com/kennethreitz/requests/blob/master/AUTHORS
S
Description
No description provided
Readme 14 MiB
Languages
Python 99.3%
Makefile 0.7%