The requests.request
function in Python’s requests
module lets you make HTTP requests. It’s a powerful and flexible way to perform different types of requests like GET, POST, PUT, DELETE, etc.
Table of Contents
- Introduction
requests.request
Function Syntax- Examples
- Basic Usage
- Using Different HTTP Methods
- Sending Data
- Sending Headers
- Handling JSON Responses
- Real-World Use Case
- Conclusion
Introduction
The requests.request
function is part of the requests
module, which makes it easy to make HTTP requests in Python. You can use this function to send requests to a web server and get responses.
requests.request Function Syntax
Here’s how you use the requests.request
function:
import requests
response = requests.request(method, url, **kwargs)
Parameters:
method
: The HTTP method to use (e.g., ‘GET’, ‘POST’, ‘PUT’, ‘DELETE’, etc.).url
: The URL for the request.**kwargs
: Optional arguments to customize the request. Common ones include:params
: Dictionary to send in the query string.data
: Dictionary to send in the body of the request.json
: Dictionary to send as JSON in the body of the request.headers
: Dictionary of HTTP headers to send with the request.
Returns:
- A
Response
object containing the server’s response to the HTTP request.
Examples
Basic Usage
Send a simple GET request to a URL.
import requests
response = requests.request('GET', 'https://jsonplaceholder.typicode.com/posts/1')
print(response.json())
Output:
{'userId': 1, 'id': 1, 'title': 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit', 'body': 'quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto'}
Using Different HTTP Methods
Send a POST request with some data.
import requests
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.request('POST', 'https://jsonplaceholder.typicode.com/posts', json=data)
print(response.json())
Output:
{'title': 'foo', 'body': 'bar', 'userId': 1, 'id': 101}
Sending Data
Send data in the body of a POST request.
import requests
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.request('POST', 'https://jsonplaceholder.typicode.com/posts', json=data)
print(response.json())
Output:
{'title': 'foo', 'body': 'bar', 'userId': 1, 'id': 101}
Sending Headers
Send custom headers with a GET request.
import requests
headers = {'Authorization': 'Bearer your_token'}
response = requests.request('GET', 'https://jsonplaceholder.typicode.com/posts/1', headers=headers)
print(response.json())
Output:
{'userId': 1, 'id': 1, 'title': 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit', 'body': 'quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto'}
Handling JSON Responses
Send a GET request and parse the JSON response.
import requests
response = requests.request('GET', 'https://jsonplaceholder.typicode.com/posts/1')
data = response.json()
print(data)
Output:
{'userId': 1, 'id': 1, 'title': 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit', 'body': 'quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto'}
Real-World Use Case
Fetching Data from an API
Fetch data from an API that requires authentication.
import requests
url = 'https://jsonplaceholder.typicode.com/posts/1'
headers = {'Authorization': 'Bearer your_token'}
response = requests.request('GET', url, headers=headers)
data = response.json()
print(data)
Output:
{'userId': 1, 'id': 1, 'title': 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit', 'body': 'quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto'}
Conclusion
The requests.request
function is a flexible way to make HTTP requests in Python. You can use it to send different types of requests, include data, headers, and handle responses. This function makes it easy to interact with web services and APIs.