requests are the most existing Python modules for dealing HTTP requests are insane.
Developer comments
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.
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
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.
Product's homepage
Here are some key features of "requests":
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
Requirements:
· Python
What's New in This Release: [ read full changelog ]
· CHUNKED REQUESTS
· Support for iterable response bodies
· Assume servers persist redirect params
· Allow explicit content types to be specified for file data
· Make merge_kwargs case-insensitive when looking up keys