Home / Programmazione / Python / HTTP Request con Python
Mattepuffo

HTTP Request con Python

HTTP Request con Python

Quello che vedremo oggi è come effettuare una richiesta HTTP a un file remoto tramite Python.

Abbiamo due modi distinti per farlo:

  • usando il modulo httplib
  • usando urllib2

Io uso la prima opzione; qui trovate la doc.

Notate subito che la libreria ha cambiato nome nella versione 3 di Python; noi in questo caso ci riferiamo alla versione 2.7.


Prepariamo una classe che fa la richiesta con una sola funzione:

 

class Service(object):

    conn = None

    def __init__(self):
        self.conn = httplib.HTTPConnection("www.sito.it")
        
    def readRes(self):
        self.conn.request(method = 'GET', url = '/service/file.php')
        res = self.conn.getresponse()
        print res.read()
        
if __name__ == "__main__":
    s = Service()
    s.readRes()

Nel costruttore inizializiamo la connessione; considerate che come indirizzo dovete dargli il server, e non un url, quindi senza http:// e senza eventuali sotto directory.

Come parametro opzionale possiamo anche dargli la porta, nel caso fosse diversa dalla classica 80.

Sotto usaimo la funzione request, indicando come primo parametro il metodo da usare (HEAD, POST o GET), e come secondo l'indirizzo del file (che verrà automaticamente agganciato al server).

Sotto leggiamo la risposta.

Le ultime righe servono per istanziare la classe e lanciare la funzione.