You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Unirest is a set of lightweight HTTP libraries available in multiple languages.
Features
Make GET, POST, PUT, PATCH, DELETE requests
Both syncronous and asynchronous (non-blocking) requests
Supports form parameters, file uploads and custom body entities
Supports gzip
Supports Basic Authentication natively
Customizable timeout
Customizable default headers for every request (DRY)
Automatic JSON parsing into a native object for JSON responses
Installing
To utilize Unirest, install it using pip:
$ pip install unirest
After installing the pip package, you can now begin simplifying requests by importing unirest:
importunirest
Creating Requests
So you're probably wondering how using Unirest makes creating requests in Python easier, let's start with a working example:
response=unirest.post("https://httpbin.org/post", headers={ "Accept": "application/json" }, params={ "parameter": 23, "foo": "bar" })
response.code# The HTTP status coderesponse.headers# The HTTP headersresponse.body# The parsed responseresponse.raw_body# The unparsed response
Asynchronous Requests
Python also supports asynchronous requests in which you can define a callback function to be passed along and invoked when Unirest receives the response:
defcallback_function(response):
response.code# The HTTP status coderesponse.headers# The HTTP headersresponse.body# The parsed responseresponse.raw_body# The unparsed responsethread=unirest.post("https://httpbin.org/post", headers={ "Accept": "application/json" }, params={ "parameter": 23, "foo": "bar" }, callback=callback_function)
File Uploads
Transferring file data requires that you open the file in a readable r mode:
Note: For the sake of semplicity, even with custom entities in the body, the keyword argument is still params (instead of data for example). I'm looking for feedback on this.
Basic Authentication
Authenticating the request with basic authentication can be done by providing an auth array like:
url - Endpoint, address, or URI to be acted upon and requested information from in a string format.
headers - Request Headers as an associative array
params - Request Body as an associative array or object
auth - The Basic Authentication credentials as an array
callback - Asychronous callback method to be invoked upon result.
Response
Upon receiving a response, Unirest returns the result in the form of an Object. This object should always have the same keys for each language regarding to the response details.
code - HTTP Response Status Code (Example 200)
headers- HTTP Response Headers
body- Parsed response body where applicable, for example JSON responses are parsed to Objects / Associative Arrays.
raw_body- Un-parsed response body
Advanced Configuration
You can set some advanced configuration to tune Unirest-Python:
Timeout
You can set a custom timeout value (in seconds):
unirest.timeout(5) # 5s timeout
Default Request Headers
You can set default headers that will be sent on every request: