3.1 Módulo requests
Para o trabalho básico com a internet no Python, existe a biblioteca
requests
. Ela oferece uma interface conveniente para
trabalhar com a rede, permitindo enviar requisições HTTP e receber respostas com
o mínimo de esforço.
Essa biblioteca não vem junto com o Python, então antes de usá-la, tu precisas instalar ela com o gerenciador de pacotes.
Abre teu terminal e digita:
pip install requests
Depois de instalar a biblioteca, tu podes usar o módulo requests
nos
teus projetos. Por exemplo, é assim que tu podes definir teu endereço
IP externo:
import requests
response = requests.get("http://ip.jsontest.com/")
print(response.status_code) # Exibe o código de status da resposta
print(response.json()) # Exibe a resposta em JSON
Aqui enviamos uma requisição para o serviço (site) ip.jsontest.com
, que retorna um objeto JSON com
o endereço IP de onde a requisição foi feita. A requisição e a obtenção da resposta é feita em uma linha — isso
é muito conveniente. Nas outras linhas, apenas imprimimos a resposta do servidor.
No exemplo acima, chamamos o método get()
, logo abaixo vou falar sobre esse método e outros métodos do objeto
requests
.
3.2 Lista de métodos
O objeto requests
tem métodos para todas as ocasiões, ou melhor dizendo, um método para cada tipo de requisição HTTP.
Método | Descrição |
---|---|
requests.get()
|
Envia uma requisição GET para obter dados do servidor. |
requests.post() |
Envia uma requisição POST para enviar dados ao servidor. |
requests.put() |
Envia uma requisição PUT para atualizar dados no servidor. |
requests.delete() |
Envia uma requisição DELETE para deletar dados do servidor. |
requests.head() |
Envia uma requisição HEAD para obter cabeçalhos sem o corpo da resposta. |
requests.options() |
Envia uma requisição OPTIONS para obter métodos e parâmetros suportados pelo servidor. |
requests.patch() |
Envia uma requisição PATCH para atualização parcial de dados no servidor. |
requests.request() |
Método principal para enviar todos os tipos de requisições HTTP . |
A seguir, vamos examinar os mais importantes deles.
3.3 Enviando requisição GET
e requisição POST
Requisição GET
geralmente consiste apenas de uma URL, ou pode conter uma string adicional de parâmetros.
1. Enviando uma requisição GET
simples
Requisição GET
é usada para obter dados do servidor. O parâmetro obrigatório é a URL para onde
a requisição será enviada.
Exemplo:
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code) # Exibe o código de status da resposta
print(response.json()) # Exibe a resposta em JSON
2. Enviando requisição GET
com parâmetros
A URL também pode conter parâmetros adicionais na forma da string key=value&key2=value2&…
No nosso caso, os parâmetros são passados na forma de um dicionário e uma variável params
:
import requests
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.json())
3. Enviando requisição POST
Requisição POST
pode conter um corpo da requisição: texto, JSON ou até mesmo uma imagem.
Exemplo:
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)
print(response.json())
3.4 Enviando requisição PUT
e requisição DELETE
1. Enviando requisição PUT
Requisição PUT
é usada para atualizar dados no servidor.
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)
print(response.json())
2. Enviando requisição DELETE
Requisição DELETE
é usada para deletar dados do servidor.
import requests
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)
print(response.json())
Para entender melhor a essência das requisições GET
, POST
, PUT
e DELETE
, tu precisas ler as palestras sobre o funcionamento da rede,
internet, web e HTTP
. Tudo isso te espera em um futuro próximo.
GO TO FULL VERSION