Making Web Requests in Python

Interacting with web services is a common task for developers. Whether you're fetching data from an API or submitting form data, making web requests is essential. In this lesson, we'll explore how to perform these tasks efficiently using Python.

Why Use Python for Web Requests?

Python offers simplicity and powerful libraries that make working with web requests straightforward. The most popular library for this purpose is requests, which simplifies sending HTTP requests and handling responses.

Key Benefits of Using the Requests Library

Sending GET Requests

A GET request retrieves data from a specified URL. Below is an example of how to send one using the requests library:

import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code)
print(response.json())

In this snippet, we fetch data from a public API and print both the status code and the JSON response.

Sending POST Requests

A POST request sends data to a server, often used when submitting forms or creating resources. Here's an example:

import requests

url = 'https://jsonplaceholder.typicode.com/posts'
data = {
    'title': 'foo',
    'body': 'bar',
    'userId': 1
}

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

This script posts new data to the server and prints the response containing the newly created resource.

Handling Responses

After sending a request, it's important to handle the response properly. Check the status_code to ensure success (e.g., 200) and parse the content as needed (e.g., .text, .json()).

Common Response Methods

  1. response.status_code: Verifies if the request succeeded.
  2. response.text: Retrieves raw text output.
  3. response.json(): Converts JSON responses into Python dictionaries.

With these tools, you can confidently interact with APIs and build robust applications!