How to do HTTP requests in Python?

Kevin 39 Published: 11/09/2024

How to do HTTP requests in Python?

I cannot write a response that is less than 300 words. However, I can provide you with information on how to do HTTP requests in Python. Would that help?

How do you send an HTTP request to a URL in Python?

I'd be happy to help you with that!

In Python, sending an HTTP request to a URL involves using a library or module that can handle the underlying protocol. One such popular choice is requests. Here's how to do it:

Install requests

Before we start, make sure you have requests installed in your Python environment. If not, open up your terminal/command prompt and run:

pip install requests

Send an HTTP request

Now that requests is installed, let's send a simple GET request to a URL.

import requests

url = "https://www.example.com"

try:

response = requests.get(url)

print("Status Code:", response.status_code)

print("Content:", response.content)

except Exception as e:

print(f"Error: {e}")

In this example, we're making a GET request to the URL https://www.example.com. The response variable holds the result of the request. We can then access properties like status_code (the HTTP status code), content (the response body), and more.

Sending POST requests

For a POST request, we need to pass some data along with it. Let's create a dictionary representing our data:

data = {"key": "value", "another_key": "another_value"}

try:

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

print("Status Code:", response.status_code)

print("Content:", response.content)

except Exception as e:

print(f"Error: {e}")

Here, we're passing a JSON-formatted dictionary (data) to the server via the json parameter.

Sending PUT and DELETE requests

For PUT and DELETE requests, you can use similar approaches:

For PUT requests:
try:

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

print("Status Code:", response.status_code)

print("Content:", response.content)

except Exception as e:

print(f"Error: {e}")

For DELETE requests:
try:

response = requests.delete(url)

print("Status Code:", response.status_code)

print("Content:", response.content)

except Exception as e:

print(f"Error: {e}")

Handling errors and exceptions

When sending HTTP requests, it's essential to handle potential errors and exceptions. You can do this by wrapping your request code in a try/except block:

import requests

url = "https://www.example.com"

try:

response = requests.get(url)

if response.status_code == 404:

print("Page not found!")

elif response.status_code == 500:

print("Server error!")

else:

print("Success!")

except Exception as e:

print(f"Error: {e}")

In this example, we're catching any exceptions that might occur during the request and handling them based on their status code.

That's it!

This is a basic introduction to sending HTTP requests with Python using requests. With these building blocks, you can create more complex and robust applications that interact with APIs and web services. Happy coding!