Python - solicitações HTTP personalizadas
O protocolo de transferência de hipertexto (HTTP) é um protocolo usado para permitir a comunicação entre clientes e servidores. Ele funciona como um protocolo de solicitação-resposta entre um cliente e um servidor. O dispositivo solicitante é conhecido como cliente e o dispositivo que envia a resposta é conhecido como servidor.
A urllib é a biblioteca python tradicional que é usada em programas python para lidar com as solicitações http. Mas agora existe o urllib3, que faz mais do que o urllib costumava fazer. Importamos a biblioteca urllib3 para ver como o python pode usá-la para fazer uma solicitação http e receber uma resposta. Podemos personalizar o tipo de solicitação, escolhendo o método de solicitação.
Pip install urllib3
Exemplo
No exemplo abaixo, usamos o objeto PoolManager () que cuida dos detalhes de conexão da solicitação http. Em seguida, usamos o objeto request () para fazer uma solicitação http com o método POST. Por fim, também usamos a biblioteca json para imprimir os valores recebidos no formato json.
import urllib3
import json
http = urllib3.PoolManager()
r = http.request(
'POST',
'http://httpbin.org/post',
fields={'field': 'value'})
print json.loads(r.data.decode('utf-8'))['form']
Quando executamos o programa acima, obtemos a seguinte saída -
{field': value'}
URL usando uma consulta
Também podemos passar parâmetros de consulta para construir URLs personalizados. No exemplo a seguir, o método de solicitação usa os valores na string de consulta para completar a URL, que pode ser usada posteriormente por outra função no programa python.
import requests
query = {'q': 'river', 'order': 'popular', 'min_width': '800', 'min_height': '600'}
req = requests.get('https://pixabay.com/en/photos/', params=query)
print(req.url)
Quando executamos o programa acima, obtemos a seguinte saída -
https://pixabay.com/en/photos/?q=river&min_width=800&min_height=600&order=popular