Making HTTP Requests in Python: A Comprehensive Guide

Saurabh Pandey
2 min readMay 5, 2023

--

HTTP requests are an essential part of web development and APIs, as they allow communication between clients and servers. Python provides the requests library, a popular and easy-to-use third-party package for making various types of HTTP requests. In this article, we'll explore how to make different types of HTTP requests in Python using the requests library, including adding headers and handling responses.

Getting Started with the Requests Library

First, install the requests library using pip:

pip install requests

Once installed, you can import it into your Python script:

import requests

Making a GET Request

A GET request is used to retrieve information from a specified resource. Here’s an example of making a GET request with the requests library:

import requests

url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(url)

print(response.status_code)
print(response.text)

Adding Headers to the Request

Headers provide additional information about the request, such as content type, authentication, or caching settings. You can add headers to your request using the headers parameter:

import requests

url = "https://jsonplaceholder.typicode.com/todos/1"
headers = {"Accept": "application/json"}

response = requests.get(url, headers=headers)

print(response.status_code)
print(response.json())

Making a POST Request

A POST request is used to submit data to a specified resource for processing. Here’s an example of making a POST request with the requests library:

import requests

url = "https://jsonplaceholder.typicode.com/posts"
data = {"title": "New Post", "body": "This is my new post.", "userId": 1}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=data, headers=headers)

print(response.status_code)
print(response.json())

Making a PUT Request

A PUT request is used to update an existing resource with new data. Here’s an example of making a PUT request with the requests library:

import requests

url = "https://jsonplaceholder.typicode.com/posts/1"
data = {"title": "Updated Post", "body": "This is my updated post.", "userId": 1}
headers = {"Content-Type": "application/json"}

response = requests.put(url, json=data, headers=headers)

print(response.status_code)
print(response.json())

Making a DELETE Request

A DELETE request is used to delete a specified resource. Here’s an example of making a DELETE request with the requests library:

import requests

url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.delete(url)

print(response.status_code)

Handling Responses

The requests library provides a Response object that contains useful information about the server's response, such as the status code, headers, and content.

Some useful properties and methods of the Response object include:

  • response.status_code: The HTTP status code returned by the server.
  • response.headers: A dictionary of the HTTP headers returned by the server.
  • response.text: The response content as a string.
  • response.json(): The response content parsed as JSON (if applicable).

Conclusion

Making HTTP requests in Python is simple and efficient using the requests library. This article demonstrates how to make various types of HTTP requests, including GET, POST, PUT, and DELETE, while also adding headers and handling responses. By incorporating the requests library into your Python projects, you can effortlessly communicate with web services and APIs, enabling seamless

--

--