Requests
The requests
library simplifies HTTP requests, making it easy to interact with web APIs and retrieve web content.
Installing Requests
pip install requests
Making HTTP Requests
requests.get(url)
: Sends a GET request to retrieve data.
requests.post(url, data={})
: Sends a POST request with data.
requests.put(url, data={})
: Updates a resource.
requests.delete(url)
: Deletes a resource.
Example:
import requests
response = requests.get('https://example.com')
print(response.content)
Handling Query Parameters
Use params
to send query parameters in a request.
Example:
payload = {'userId': 1}
response = requests.get('https://example.com', params=payload)
print(response.url)
Output:
https://example.com/?userId=1
Sending JSON Data in a POST Request
Example:
data = {'title': 'New Post', 'body': 'Content', 'userId': 1}
response = requests.post('https://example.com', json=data)
print(response.status_code, response.content)
Handling Headers and Authentication
Example:
headers = {'Authorization': 'Bearer your_token'}
response = requests.get('https://example.com', headers=headers)
Downloading Files
Example:
response = requests.get('https://example.com/image.jpg')
with open('image.jpg', 'wb') as file:
file.write(response.content)
Response Attributes and Methods
The requests.Response
object provides attributes and methods to handle HTTP responses efficiently.
.status_code
: Returns the HTTP status code.
.headers
: Retrieves response headers as a dict
.
.url
: Shows the final URL after redirections.
.elapsed
: Time taken for the request.
.text
: Decodes response content as a string.
.content
: Returns raw binary content.
.json()
: Parses response as JSON.
.history
: Shows redirection history.
.encoding
: Gets/sets encoding for .text.
Example:
response = requests.get('https://example.com')
print(response.status_code) # 200
print(response.headers['Content-Type']) # application/json; charset=utf-8
print(response.url) # Final URL
print(response.elapsed) # Response time
print(response.text) # Returns the response as a string
print(response.content) # Returns raw bytes
print(response.json()) # Parses JSON response
print(response.history) # List of previous responses
print(response.encoding) # Default encoding (usually utf-8)
Error Handling
Use response.raise_for_status()
to handle HTTP errors.
Example:
try:
response = requests.get('https://example.com/error')
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f'Error: {e}')
Last modified: 17 March 2025