http-parser

Screenshot Software:
http-parser
Szczegóły programowe:
Wersja: 0.8.3
Filmu: 20 Feb 15
Wywoływacz: Benoit Chesneau
Licencja: Wolny
Popularność: 2

Rating: nan/5 (Total Votes: 0)

http-parser jest HTTP parser żądanie / odpowiedź dla Pythona w C na licencji MIT, na podstawie http-parser z Ryan Dahl.
Instalacja:
pip zainstalować http-parser
Lub zainstalować ze źródeł:
git clone git: //github.com/benoitc/http-parser.git
cd http-parser && python setup.py install
Sposób użycia:
http-parser zapewnić Państwu parser.HttpParser niskopoziomowe parser w C, który można uzyskać dostęp w programie Pythona i http.HttpStream zapewnienie dostępu do wyższego poziomu, czytelny sekwencyjnym obiektu io.RawIOBase.
Aby pomóc w pracy dzień, http-parser prvides ci 3 rodzaj czytelników w module czytnika: IterReader czytać iterables, StringReader się czyta sznurki i obiekty StringIO, SocketReader czytać gniazda lub obiektów z tego samego A & icirc; (Recv_into potrzebne). Ty cnan oczywiście użyć dowolnego obiektu io.RawIOBase.
Likre http-parser w C można przekazać własne wywołania zwrotne do C parser, dzięki czemu można w końcu analizować asynchronicznie dowolnego strumienia HTTP. Poprawki są:
on_message_begin ()
on_path (ścieżka)
on_query_string (QUERY_STRING)
on_url (url)
on_fragment (fragment)
on_header_field (pole, last_was_value)
on_header_value (klucz, wartość)
on_headers_complete ()
on_body (fragment)
on_message_complete ()
Przykład HttpStream
ex:
#! / Usr / bin / env python
Gniazdo importu
z importu http_parser.http HttpStream
z http_parser.reader importu SocketReader
def main ():
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; spróbuj:
& 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 print ()
. & Nbsp; wydruku p.body_file (), read ()
& Nbsp; na końcu:
& Nbsp; s.close ()
jeśli __name__ == "__main__":
& Nbsp; main ()
Przykład HttpParser:
#! / Usr / bin / env python
Gniazdo importu
z importu http_parser.parser HttpParser
def main ():
& Nbsp; p = HttpParser ()
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; body = []
& Nbsp; spróbuj:
& 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; data = s.recv (1024)
& Nbsp; jeśli nie dane:
& Nbsp; przerwa
& Nbsp; recved = len (dane)
& Nbsp; nparsed = p.execute (dane, recved)
& Nbsp; dochodzić nparsed == recved
& Nbsp; p.is_headers_complete ():
& nbsp; p.get_headers print ()
& Nbsp; p.is_partial_body ():
& Nbsp; body.append (p.recv_body ())
& Nbsp; p.is_message_complete ():
& Nbsp; przerwa
& Nbsp; print "" .join (korpus)
& Nbsp; na końcu:
& Nbsp; s.close ()
jeśli __name__ == "__main__":
& Nbsp; main ()
. Można znaleźć więcej dokumentacji w kodzie (lub użyć genererator doc)

Wymagania :

  • Python
  • Cython jeśli trzeba odbudować kod C

Inne programy z deweloperem Benoit Chesneau

fserve
fserve

11 May 15

http-parser
http-parser

12 May 15

Restkit
Restkit

5 Jun 15

tproxy
tproxy

12 May 15

Komentarze do http-parser

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!