Python - niestandardowe żądania HTTP

Hypertext Transfer Protocol (HTTP) to protokół umożliwiający komunikację między klientami a serwerami. Działa jako protokół żądanie-odpowiedź między klientem a serwerem. Urządzenie żądające jest znane jako klient, a urządzenie, które wysyła odpowiedź, jest znane jako serwer.

Urllib to tradycyjna biblioteka Pythona używana w programach w języku Python do obsługi żądań http. Ale teraz jest urllib3, który robi więcej niż to, co robił urllib. Importujemy bibliotekę urllib3, aby zobaczyć, jak Python może jej użyć do wysłania żądania http i otrzymania odpowiedzi. Możemy dostosować rodzaj zapytania, wybierając metodę żądania.

Pip install urllib3

Przykład

W poniższym przykładzie używamy obiektu PoolManager (), który dba o szczegóły połączenia żądania http. Następnie używamy obiektu request () do wykonania żądania http metodą POST. Na koniec używamy biblioteki json do drukowania odebranych wartości w formacie 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']

Po uruchomieniu powyższego programu otrzymujemy następujący wynik -

{field': value'}

URL za pomocą zapytania

Możemy również przekazywać parametry zapytania, aby tworzyć niestandardowe adresy URL. W poniższym przykładzie metoda żądania wykorzystuje wartości w ciągu zapytania do uzupełnienia adresu URL, który może być dalej używany przez inną funkcję w programie w języku 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)

Po uruchomieniu powyższego programu otrzymujemy następujący wynik -

https://pixabay.com/en/photos/?q=river&min_width=800&min_height=600&order=popular