http-parser

Software screenshot:
http-parser
Dettagli del software:
Versione: 0.8.3
Data di caricamento: 20 Feb 15
Sviluppatore: Benoit Chesneau
Licenza: Libero
Popolarità: 2

Rating: nan/5 (Total Votes: 0)

http-parser è un parser di richiesta / risposta HTTP per Python in C sotto licenza MIT, basata su http-parser da Ryan Dahl.
Installazione:
Pip installare http-parser
Oppure installare da sorgente:
git clone git: //github.com/benoitc/http-parser.git
cd http-parser && python setup.py install
Utilizzo:
http-parser forniscono parser.HttpParser basso livello parser in C che è possibile accedere al programma di pitone e http.HttpStream fornire l'accesso di livello superiore ad un sequenziale oggetti io.RawIOBase leggibile.
Per aiutarvi nel vostro lavoro quotidiano, http-parser prvides voi 3 tipi di lettori nel modulo di lettura: IterReader a leggere iterables, StringReader per legge stringhe e oggetti StringIO, SocketReader leggere prese o oggetti con lo stesso un & icirc; (Recv_into necessario). Si CNAN naturalmente utilizzare qualsiasi oggetto io.RawIOBase.
Likre http-parser in C si può passare le proprie callback al parser C, in modo da poter finalmente analizzare in modo asincrono qualsiasi flusso HTTP. Richiamate sono:
on_message_begin ()
on_path (percorso)
on_query_string (QUERY_STRING)
on_url (url)
on_fragment (frammento)
on_header_field (campo, last_was_value)
on_header_value (chiave, valore)
on_headers_complete ()
on_body (chunk)
on_message_complete ()
Esempio di HttpStream
es:
#! / Usr / bin / env python
Presa import
da http_parser.http import HttpStream
da http_parser.reader import SocketReader
def main ():
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; provare:
& Nbsp; s.connect (('gunicorn.org', 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org r n r n")
& Nbsp; r = SocketReader (s)
& Nbsp; p = HttpStream (r)
& nbsp; p.headers stampa ()
& Nbsp;. Print p.body_file () read ()
& Nbsp; infine:
& Nbsp; s.close ()
if __name__ == "__main__":
& Nbsp; main ()
Esempio di HttpParser:
#! / Usr / bin / env python
Presa import
da http_parser.parser import HttpParser
def main ():
& Nbsp; p = HttpParser ()
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; body = []
& Nbsp; provare:
& Nbsp; s.connect (('gunicorn.org', 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org r n r n")
& Nbsp; while True:
& nbsp; dati = s.recv (1024)
& Nbsp; se non i dati:
& Nbsp; rottura
& Nbsp; recved = len (dati)
& Nbsp; nparsed = p.execute (dati, recved)
& Nbsp; affermare == nparsed recved
& Nbsp; se p.is_headers_complete ():
& nbsp; p.get_headers stampa ()
& Nbsp; se p.is_partial_body ():
& Nbsp; body.append (p.recv_body ())
& Nbsp; se p.is_message_complete ():
& Nbsp; rottura
& Nbsp; print "" .join (corpo)
& Nbsp; infine:
& Nbsp; s.close ()
if __name__ == "__main__":
& Nbsp; main ()
. Potete trovare ulteriori documenti nel codice (o utilizzare un genererator doc)

Requisiti :

  • Python
  • Cython se è necessario ricostruire il codice C

Altri software di sviluppo Benoit Chesneau

fserve
fserve

11 May 15

tproxy
tproxy

12 May 15

Couchapp
Couchapp

14 Apr 15

http-parser
http-parser

12 May 15

Commenti a http-parser

I commenti non trovato
Aggiungi commento
Accendere le immagini!