Como usar a biblioteca Requests do Python para HTTP

A biblioteca requests ​​é um módulo Python popular que simplifica o processo de fazer solicitações HTTP. Ela abstrai a complexidade de lidar com solicitações e respostas, facilitando a interação com serviços da web e APIs. Neste artigo, exploraremos os conceitos básicos do uso da biblioteca requests, incluindo como enviar vários tipos de solicitações HTTP e lidar com respostas.

Instalando a biblioteca Requests

Antes de poder usar a biblioteca requests, você precisará instalá-la. Você pode instalá-la usando pip, o gerenciador de pacotes Python. Execute o seguinte comando no seu terminal:

pip install requests

Fazendo uma solicitação GET simples

A solicitação HTTP mais básica é uma solicitação GET, que recupera dados de um servidor. Veja como você pode usar a biblioteca requests ​​para fazer uma solicitação GET:

import requests

response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())

Neste exemplo, enviamos uma solicitação GET para a API do GitHub e imprimimos o código de status HTTP e o conteúdo da resposta no formato JSON.

Enviando solicitações POST

As solicitações POST são usadas para enviar dados para um servidor, como envios de formulários. Veja como enviar uma solicitação POST com a biblioteca requests:

import requests

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())

Neste exemplo, enviamos uma solicitação POST com alguns dados de formulário para o serviço de teste httpbin.org e imprimimos o código de status da resposta e o conteúdo.

Manipulando Parâmetros de Consulta

Às vezes, você precisa incluir parâmetros de consulta em suas requisições. A biblioteca requests ​​torna isso fácil permitindo que você passe parâmetros como um dicionário:

import requests

params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)

Neste exemplo, incluímos parâmetros de consulta em uma solicitação GET e imprimimos a URL final com os parâmetros incluídos.

Trabalhando com cabeçalhos

Talvez seja necessário incluir cabeçalhos personalizados em suas solicitações, como para autenticação ou para especificar tipos de conteúdo. Veja como adicionar cabeçalhos às suas solicitações:

import requests

headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())

Neste exemplo, incluímos um cabeçalho de autorização na solicitação para a API do GitHub e imprimimos o código de status e o conteúdo da resposta.

Lidando com tempos limite e exceções

É importante lidar com problemas potenciais, como timeouts de rede e outras exceções. A biblioteca requests ​​permite que você especifique timeouts e capture exceções:

import requests
from requests.exceptions import RequestException

try:
    response = requests.get('https://httpbin.org/delay/5', timeout=3)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except RequestException as e:
    print(f'An error occurred: {e}')

Neste exemplo, definimos um tempo limite para a solicitação e capturamos quaisquer exceções que ocorram, exibindo uma mensagem de erro se algo der errado.

Conclusão

A biblioteca requests ​​é uma ferramenta poderosa e fácil de usar para fazer solicitações HTTP em Python. Não importa se você está recuperando dados de APIs, enviando envios de formulários ou manipulando cabeçalhos personalizados, a biblioteca requests ​​facilita a execução dessas tarefas com apenas algumas linhas de código. Ao dominar os conceitos básicos abordados neste artigo, você estará bem equipado para interagir com serviços da web e APIs em seus projetos Python.