requests — Client HTTP¶
Il modulo requests fornisce un’API client HTTP/HTTPS minimale simile alla libreria Python requests. Ogni funzione di richiesta restituisce un oggetto requests.Response.
Esempio:
import requests
# GET a JSON resource.
r = requests.get("https://httpbin.org/get")
print(r.status_code, r.reason)
print(r.json())
# POST JSON.
r = requests.post(
"https://httpbin.org/post",
json={"id": 1, "value": 42},
headers={"X-Source": "openmv"},
)
print(r.json())
Classe Response¶
- class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)¶
Rappresenta una risposta HTTP. Le istanze vengono restituite da
requests.requeste dagli helper specifici per metodo.- encoding: str¶
Codifica della stringa usata per decodificare
requests.Response.headerserequests.Response.content. Il valore predefinito è"utf-8".
- headers: str¶
Header della risposta decodificati con
requests.Response.encodinge restituiti comestr.
- content: str¶
Corpo della risposta decodificato con
requests.Response.encodinge restituito comestr.
- json() dict¶
Analizza
requests.Response.contentcome JSON e restituisce l’oggetto risultante.
Funzioni¶
- requests.request(method: str, url: str, data: bytes | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) Response¶
Invia una richiesta HTTP a
urle restituisce unrequests.Response.method— Metodo HTTP comestr(ad esempio"GET","POST").url— URL di destinazione. Deve iniziare conhttp://ohttps://.data— Corpo grezzo della richiesta. Se impostato,Content-Lengthviene aggiunto automaticamente.json— Oggetto serializzato in JSON e inviato come corpo. ImpostaContent-Type: application/json.files— Dizionario che associa il nome del campo a una tupla(filename, fileobj). Inviato comemultipart/form-data.headers— Dizionario di header aggiuntivi della richiesta.auth— Tupla(username, password)per l’autenticazione HTTP Basic.stream— Accettato per compatibilità con l’API; non utilizzato.
- requests.head(url: str, **kw: Any) Response¶
Invia una richiesta HTTP
HEADe restituisce unResponse.HEADè identico aGETtranne che il server risponde solo con la riga di stato e gli header; il corpo è vuoto. Usalo per verificare se una risorsa esiste, ispezionareContent-Length/Content-Typesenza scaricare il payload, o sondare un URL prima di effettuare unGETpiù pesante.Argomenti:
url– URL di destinazione; deve iniziare conhttp://ohttps://.headers(kwarg) – dizionario di header aggiuntivi della richiesta.auth(kwarg) – tupla(username, password)per l’autenticazione HTTP Basic.
data/json/files/streamdirequest()sono accettati per completezza ma hanno raramente senso perHEAD.
- requests.get(url: str, **kw: Any) Response¶
Invia una richiesta HTTP
GETe restituisce unResponse.GETè il verbo standard per recuperare una rappresentazione della risorsa identificata daurl. È sicuro (non causa alcun cambiamento di stato lato server) e idempotente.Argomenti:
url– URL di destinazione; deve iniziare conhttp://ohttps://.headers(kwarg) – dizionario di header aggiuntivi della richiesta (ad esempioAuthorizationoAccept).auth(kwarg) – tupla(username, password)per l’autenticazione HTTP Basic.
Un corpo di richiesta tramite
data/jsonè consentito dal sottostanterequest()ma viene ignorato dalla maggior parte dei server.
- requests.post(url: str, **kw: Any) Response¶
Invia una richiesta HTTP
POSTe restituisce unResponse.POSTinvia dati aurl, tipicamente creando una nuova risorsa subordinata, attivando l’invio di un modulo o invocando un’azione. Non è né sicuro né idempotente: chiamate ripetute possono creare risorse duplicate.Argomenti:
url– URL di destinazione; deve iniziare conhttp://ohttps://.data(kwarg) – corpo grezzo della richiesta (di tipobytes). Invia automaticamente un headerContent-Length.json(kwarg) – oggetto serializzato in JSON e inviato come corpo. ImpostaContent-Type: application/json.files(kwarg) – dizionario che associa un nome di campo a(filename, fileobj). Inviato comemultipart/form-data.headers(kwarg) – dizionario di header aggiuntivi della richiesta.auth(kwarg) – tupla(username, password)per l’autenticazione HTTP Basic.
Passa al massimo uno tra
data/json/files.
- requests.put(url: str, **kw: Any) Response¶
Invia una richiesta HTTP
PUTe restituisce unResponse.PUTsostituisce la risorsa aurlcon la rappresentazione fornita, creandola se non esiste. È idempotente: ripetere unPUTidentico produce lo stesso stato finale.Argomenti:
url– URL di destinazione; deve iniziare conhttp://ohttps://.data(kwarg) – corpo grezzo di sostituzione (di tipobytes).json(kwarg) – oggetto serializzato in JSON e inviato come corpo di sostituzione. ImpostaContent-Type: application/json.headers(kwarg) – dizionario di header aggiuntivi della richiesta.auth(kwarg) – tupla(username, password)per l’autenticazione HTTP Basic.
Passa
dataoppurejsonper trasportare la nuova rappresentazione.
- requests.patch(url: str, **kw: Any) Response¶
Invia una richiesta HTTP
PATCHe restituisce unResponse.PATCHapplica una modifica parziale alla risorsa aurl– cambiano solo i campi contenuti nel corpo della richiesta. A differenza diPUT, non è tenuto a essere idempotente (anche se molte API lo rendono tale).Argomenti:
url– URL di destinazione; deve iniziare conhttp://ohttps://.data(kwarg) – corpo grezzo del delta (di tipobytes). Il formato dipende dal server (ad esempio JSON Patch, JSON Merge Patch).json(kwarg) – oggetto delta serializzato in JSON. ImpostaContent-Type: application/json.headers(kwarg) – dizionario di header aggiuntivi della richiesta.auth(kwarg) – tupla(username, password)per l’autenticazione HTTP Basic.
- requests.delete(url: str, **kw: Any) Response¶
Invia una richiesta HTTP
DELETEe restituisce unResponse.DELETErichiede la rimozione della risorsa aurl. È idempotente: eliminare una risorsa già eliminata non è un errore (il server tipicamente restituisce un 404, ma lo stato finale è lo stesso).Argomenti:
url– URL di destinazione; deve iniziare conhttp://ohttps://.headers(kwarg) – dizionario di header aggiuntivi della richiesta.auth(kwarg) – tupla(username, password)per l’autenticazione HTTP Basic.
Un corpo tramite
data/jsonè consentito dal sottostanterequest()ma viene usato raramente conDELETE.