Como fazer requisições HTTP com requests em Python?
A biblioteca Requests é uma das mais utilizadas no Python para envio de requisições HTTP, permitindo interações com APIs e serviços web.
Instalando o Requests
Se ainda não tiver o Requests instalado, utilize o seguinte comando:
pip install requests
Fazendo uma requisição GET
O método GET é utilizado para buscar dados de uma URL. Veja um exemplo:
import requests
response = requests.get("https://jsonplaceholder.typicode.com/todos/1")
print(response.status_code) # Código de status HTTP
print(response.json()) # Conteúdo da resposta em JSON
Neste código, enviamos uma requisição GET para uma API pública e exibimos o código de resposta e o JSON retornado.
Enviando dados com uma requisição POST
Para enviar dados a um servidor, utilizamos o método POST:
data = {"title": "Novo Post", "body": "Conteúdo do post", "userId": 1}
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=data)
print(response.json())
Aqui, enviamos um dicionário como JSON para a API, criando um novo post.
Tratando erros em requisições
Podemos tratar erros utilizando try-except
e verificando o código de status:
try:
response = requests.get("https://jsonplaceholder.typicode.com/invalid-url")
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"Erro ao fazer requisição: {e}")
Esse código captura exceções e evita falhas inesperadas ao realizar requisições.
Por que utilizar Requests no Python?
A biblioteca Requests simplifica a comunicação com APIs e serviços web. Seu uso é essencial para desenvolvedores que precisam enviar e receber dados entre aplicações.
Algumas aplicações:
- Integração com APIs REST.
- Automação de tarefas web.
- Scraping de dados (quando combinado com BeautifulSoup).
- Monitoramento de servidores e serviços web.
Dicas para quem está começando
- Use
response.status_code
para verificar o status da requisição. - Experimente
response.json()
para converter respostas em JSON automaticamente. - Utilize
requests.post()
para enviar dados via método POST. - Explore
requests.headers
para visualizar cabeçalhos de resposta.
Contribuições de Pedro Vasconcellos