Como enviar requisições HTTP com requests em Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Instalação e configuração da biblioteca requests

A biblioteca requests não faz parte da instalação padrão do Python, portanto é necessário instalá-la separadamente. Execute o seguinte comando no terminal:

pip install requests

Para verificar se a instalação foi bem-sucedida, execute:

import requests
print(requests.__version__)

O que são requisições HTTP e por que usar a biblioteca requests

HTTP (HyperText Transfer Protocol) é o protocolo de transferência de dados entre cliente e servidor. A biblioteca requests é uma biblioteca externa do Python que simplifica drasticamente o envio de requisições HTTP em comparação com o módulo nativo urllib.

Principais vantagens da biblioteca requests

  • Simplicidade de uso e código mais legível
  • Suporte a todos os métodos HTTP (GET, POST, PUT, DELETE, PATCH)
  • Trabalho automático com dados JSON
  • Suporte nativo a cookies e sessões
  • Configuração flexível de cabeçalhos e parâmetros
  • Tratamento de erros e exceções
  • Suporte a servidores proxy e certificados SSL

Principais métodos HTTP com exemplos práticos

Requisições GET: obtendo dados

O método GET é usado para obter dados do servidor sem alterá-los.

import requests

# Requisição GET simples
response = requests.get('https://api.github.com')
print(response.status_code)  # 200
print(response.text)         # Conteúdo da resposta

Enviando parâmetros em uma requisição GET

# Enviando parâmetros através de um dicionário
params = {
    'q': 'python',
    'sort': 'stars',
    'order': 'desc',
    'page': 1
}

response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url)  # Verificando a URL final com os parâmetros

Requisições POST: enviando dados

O método POST é usado para enviar dados ao servidor e criar novos recursos.

# Requisição POST com dados de formulário
data = {
    'username': 'usuario_teste',
    'password': 'senha_segura',
    'email': 'teste@exemplo.com'
}

response = requests.post('https://httpbin.org/post', data=data)
print(response.json())

Requisição POST com dados JSON

# Enviando dados JSON
json_data = {
    'title': 'Novo post',
    'body': 'Conteúdo do post',
    'userId': 1
}

response = requests.post(
    'https://jsonplaceholder.typicode.com/posts',
    json=json_data
)
print(response.json())

Requisições PUT: atualizando dados

O método PUT é usado para atualizar completamente recursos existentes.

update_data = {
    'id': 1,
    'title': 'Título atualizado',
    'body': 'Novo conteúdo',
    'userId': 1
}

response = requests.put(
    'https://jsonplaceholder.typicode.com/posts/1',
    json=update_data
)
print(f"Status: {response.status_code}")
print(response.json())

Requisições PATCH: atualização parcial

O método PATCH é usado para atualizar parcialmente um recurso.

patch_data = {'title': 'Título parcialmente atualizado'}

response = requests.patch(
    'https://jsonplaceholder.typicode.com/posts/1',
    json=patch_data
)
print(response.json())

Requisições DELETE: removendo dados

O método DELETE é usado para remover recursos do servidor.

response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"Status da exclusão: {response.status_code}")

Trabalhando com cabeçalhos HTTP

Os cabeçalhos contêm metadados sobre a requisição e permitem enviar informações adicionais ao servidor.

headers = {
    'User-Agent': 'Mozilla                

Blogs

Book Recommendations