❮ Requests Module
Example
Make a request to a web page, and return the status code:
import requests
x = requests.get['//w3schools.com']
print[x.status_code]
Run Example »
Definition and Usage
The requests.Response[]
Object contains the server's response to the HTTP request.
Properties and Methods
apparent_encoding | Try it | Returns the apparent encoding |
close[] | Try it | Closes the connection to the server |
content | Try it | Returns the content of the response, in bytes |
cookies | Try it | Returns a CookieJar object with the cookies sent back from the server |
elapsed | Try it | Returns a timedelta object with the time elapsed from sending the request to the arrival of the response |
encoding | Try it | Returns the encoding used to decode r.text |
headers | Try it | Returns a dictionary of response headers |
history | Try it | Returns a list of response objects holding the history of request [url] |
is_permanent_redirect | Try it | Returns True if the response is the permanent redirected url, otherwise False |
is_redirect | Try it | Returns True if the response was redirected, otherwise False |
iter_content[] | Try it | Iterates over the response |
iter_lines[] | Try it | Iterates over the lines of the response |
json[] | Try it | Returns a JSON object of the result [if the result was written in JSON format, if not it raises an error] |
links | Try it | Returns the header links |
next | Try it | Returns a PreparedRequest object for the next request in a redirection |
ok | Try it | Returns True if status_code is less than 400, otherwise False |
raise_for_status[] | Try it | If an error occur, this method returns a HTTPError object |
reason | Try it | Returns a text corresponding to the status code |
request | Try it | Returns the request object that requested this response |
status_code | Try it | Returns a number that indicates the status [200 is OK, 404 is Not Found] |
text | Try it | Returns the content of the response, in unicode |
url | Try it | Returns the URL of the response |
❮ Requests Module
The Open Event Android project helps event organizers to generate Apps [apk format] using Open Event App generator for their events/conferences by providing API endpoint or zip generated using Open Event server.
The Open Event Android project has an assets folder which contains sample JSON files for the event, which are used to load the data when there is no Internet connection. When an organizer generates an app with the help of an API endpoint, then all the assets, e.g. images, are removed and because of it generated don’t have sample JSON files. So if the device is offline then it will not load the data from the assets [issue #1606]. The app should contain sample event JSON files and should be able to load the data without the Internet connection.
One solution to this problem is to fetch all the event data [JSON files] from the server and save it to the assets folder while generating the app using Open Event App generator. So in this blog post, I explain how to make a simple request using Python and save the response in a file.
Making a simple request
To fetch the data we need to make a request to the server and the server will return the response for that request. Here’s step to make a simple request,
Import Requests module using,
The requests module has get, post, put, delete, head, options to make a request. Example:
requests.get[self.api_link + '/' + end_point]
Here all method returns requests.Response object. We can get all the information we need from this object.
So we can make response object like this,
response = requests.get[self.api_link + '/' + end_point]
Saving response in a file
For saving response in a file we need to open/create a file for writing.
Create or open file
The open[] method is used for opening file. It takes two arguments one is file name and second in access mode which determines the mode in which the file has to be opened, i.e., read, write, append, etc.
file = open[path/to/the/file, "w+"]
Here “w+” overwrites the existing file if the file exists. If the file does not exist, it creates a new file for reading and writing.
Write and close file
Now write the content of the response using the write[] method of file object then close the file object using the close[] method. The close[] method flushes any unwritten information and closes the file object.
file.write[response.text] file.close[]
Here response.text gives the content of the response in Unicode format.
Conclusion
The requests.Response object contains much more data like encoding, status_code, headers etc. For more info about request and response refer additional resources given below.
Additional Resources
- Request: //docs.python-requests.org/en/master/api/
- Response: //docs.python-requests.org/en/master/api/#requests.Response
- Open Event Android PR: //github.com/fossasia/open-event-android/pull/1608/files