http-parser

Software screenshot:
http-parser
Podrobnosti Software:
Verze: 0.8.3
Datum uploadu: 20 Feb 15
Vývojka: Benoit Chesneau
Licence: Volný
Popularita: 16

Rating: nan/5 (Total Votes: 0)

http-parser je HTTP parser požadavek / odpověď pro Python v C pod MIT licencí, založený na http-parser od Ryan Dahl.
Instalace:
Pip nainstalovat http-parser
Nebo instalace ze zdrojových kódů:
git clone git: //github.com/benoitc/http-parser.git
CD http-parser && python setup.py nainstalovat
Použití:
http-parser poskytnout vám parser.HttpParser low-level analyzátor v C, který je dostupný v python programu a http.HttpStream poskytování přístupu na vyšší úrovni, čitelné, sekvenční io.RawIOBase objektu.
Abychom vám pomohli ve svůj den práci, http-analyzátor vám přináší prvides 3 druhů čtenářů v modulu čtečky: IterReader číst iterables, StringReader se čte řetězce a StringIO objekty, SocketReader číst zásuvky nebo předměty se stejným A icirc; (Recv_into nutná). Ty cnan samozřejmě použít jakýkoliv objekt io.RawIOBase.
Likre http-parser v C můžete předat své vlastní zpětná volání C parser, takže si můžete nakonec analyzovat asynchronně žádný HTTP stream. Zpětná volání jsou:
on_message_begin ()
on_path (path)
on_query_string (QUERY_STRING)
on_url (url)
on_fragment (fragment)
on_header_field (pole, last_was_value)
on_header_value (klíč, hodnota)
on_headers_complete ()
on_body (kus)
on_message_complete ()
Příklad HttpStream
ex:
#! / Usr / bin / env python
import zásuvka
od http_parser.http dovozu HttpStream
od http_parser.reader dovozu SocketReader
def main ():
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; zkuste:
& Nbsp; s.connect (("gunicorn.org ', 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org r n r n")
& Nbsp; r = SocketReader (y)
& Nbsp; p = HttpStream (r)
& nbsp; tiskové p.headers ()
& Nbsp;. Print p.body_file () read ()
& Nbsp; na závěr:
& Nbsp; s.close ()
pokud __name__ == "__main__":
& Nbsp; main ()
Příklad HttpParser:
#! / Usr / bin / env python
import zásuvka
od http_parser.parser dovozu HttpParser
def main ():
& Nbsp; p = HttpParser ()
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; body = []
& Nbsp; zkuste:
& Nbsp; s.connect (("gunicorn.org ', 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org r n r n")
& Nbsp; je sice pravda:
& nbsp; údaje = s.recv (1024)
& Nbsp; není-li údaje:
& Nbsp; přestávka
& Nbsp; recved = len (data)
& Nbsp; nparsed = p.execute (data, recved)
& Nbsp; tvrdí, nparsed == recved
& Nbsp; pokud p.is_headers_complete ():
& nbsp; tiskové p.get_headers ()
& Nbsp; pokud p.is_partial_body ():
& Nbsp; body.append (p.recv_body ())
& Nbsp; pokud p.is_message_complete ():
& Nbsp; přestávka
& Nbsp; print "" join (body)
& Nbsp; na závěr:
& Nbsp; s.close ()
pokud __name__ == "__main__":
& Nbsp; main ()
. Můžete si najít více dokumenty v kódu (nebo použijte doc genererator)

Požadavky na :

  • Python
  • Cython pokud potřebujete obnovit kód C

Ostatní software developer Benoit Chesneau

hroute
hroute

11 May 15

tproxy
tproxy

12 May 15

Restkit
Restkit

5 Jun 15

Komentáře k http-parser

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!