Requests: HTTP per gli Esseri Umani¶
Release v2.7.0. (Installazione)
Requests è una libreria HTTP con licenza Apache2, scritta in Python per gli Esseri Umani.
Il modulo urllib2 della libreria standard Python mette a disposizione quasi tutte le principali funzionalità HTTP ma la sua interfaccia è molto frastagliata. Quel modulo è stato creato per tempi diversi - e un web diverso. Serve molto lavoro (addirittura anche l’overriding di metodi) per realizzare il più semplice dei task.
Le cose non dovrebbero funzionare così. Non in Python.
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}
Guarda un codice che fa le stesse cose, ma senza Requests.
Requests si fa carico di tutto il lavoro per implementare HTTP/1.1 su Python - rendendo immediata l’integrazione delle tue applicazioni con i web services. Non c’è bisogno di aggiungere manualmente query string agli URL, o di fare form-encoding dei dati di POST. Il Keep-alive e il pooling delle connessioni HTTP sono 100% automatici, tutto ciò grazie a urllib3, che è contenuta dentro Requests.
Testimonial¶
Il Governo di Sua Maestà, Amazon, Google, Twilio, Runscope, Mozilla, Heroku, PayPal, NPR, Obama for America, Transifex, Native Instruments, il Washington Post, Twitter, SoundCloud, Kippt, Readability, Sony e Istituzioni Federali degli Stati Uniti che preferiscono rimanere anonime usano Requests al loro interno. E’ stato scaricato da PyPI più di 40.000.000 di volte.
- Armin Ronacher
- Requests è l’esempio perfetto di quanto un’API possa essere bella con il giusto livello di astrazione.
- Matt DeBoard
- In un modo o nell’altro, mi farò tatuare addosso il modulo Python requests di @kennethreitz. Il modulo intero.
- Daniel Greenfeld
- Ho rimpiazzato una libreria di 1200 righe di codice spaghetti con sole 10 righe grazie alla libreria requests di @kennethreitz’s. Oggi è stata una giornata INCREDIBILE.
- Kenny Meyers
- HTTP con Python: se avete dubbi, o se non ne avete, usate Requests. Bella, semplice, Pythonica.
Features¶
Requests è pronto per il web moderno.
- Domini e URL internazionali
- Keep-Alive e Pooling delle connessioni
- Sessioni persistenti attraverso i cookie
- Verifica SSL come la fanno i browser
- Autenticazione Basic/Digest
- Cookie chiave/valore
- Decompressione automatica dei dati
- Corpo delle risposte in Unicode
- Upload di file multipart
- Timeout sulle connessioni
- Supporto per
.netrc
- Supporto per Python 2.6—3.4
- Thread-safety.
Documentazione per l’utente¶
Questa parte della documentazione, che è per lo più in forma di prosa, inizia contestualizzando Requests e prosegue dando istruzioni passo-passo per utilizzare Requests al meglio.
- Introduzione
- Installazione
- Il primo impatto con Requests
- Effettuare una Richiesta
- Passare parametri negli URL
- Contenuto delle Risposte
- Contenuto binario delle Risposte
- Contenuto JSON delle Risposte
- Contenuto raw delle Risposte
- Header Custom
- Richieste POST più complesse
- Postare un file Multipart-Encoded
- Status code delle risposte
- Header delle risposte
- Cookie
- Redirezione e History
- Timeout
- Errori ed Eccezioni
- Uso avanzato di Requests
- Oggetti Session
- Oggetti Request e Response
- Richieste preparate
- Verifica dei certificati SSL
- Workflow di lettura del corpo delle risposte
- Keep-Alive
- Upload in streaming
- Richieste Chunk-Encoded
- POST-are più file Multipart-Encoded
- Hook per gli eventi
- Autenticazione custom
- Richieste in streaming
- Proxy
- Conformità
- Verbi HTTP
- Header Link
- Adapter di Trasporto
- Bloccante o Non-Bloccante?
- Timeout
- Certificati delle CA
- Autenticazione
Documentazione per la community¶
Questa parte della documentazione, che è per lo più in forma di prosa, spiega i dettagli dell’ecosistema e della community attorno a Requests.
Documentazione dell’API¶
Se cerchi informazioni su una funzione, una classe o un metodo in particolare, questa parte della documentazione è il posto giusto.
Documentazione per i collaboratori¶
Se desiderate contribuire al progetto, questa parte della documentazione è il punto di partenza.