http-parser

Szoftver screenshot:
http-parser
Szoftver adatai:
Változat: 0.8.3
Feltöltés dátuma: 20 Feb 15
Fejlesztő: Benoit Chesneau
Engedély: Ingyenes
Népszerűség: 2

Rating: nan/5 (Total Votes: 0)

http-elemző egy HTTP kérés / válasz elemző a Python in C alatt MIT licenc alapján http-elemző Ryan Dahl.
Telepítés:
pip telepíteni http-elemző
Vagy forrásból telepíteni:
git clone git: //github.com/benoitc/http-parser.git
cd http-elemző && python setup.py telepíteni
Használat:
http-elemző az Ön parser.HttpParser alacsony szintű elemző a C, melyeket a saját python programot, és http.HttpStream hogy magasabb szintű hozzáférést olvasható, szekvenciális io.RawIOBase objektumot.
Hogy segítsen a napi munka, http-elemző prvides akkor 3 fajta olvasók az olvasó modul: IterReader olvasni iterables, StringReader hogy beolvassa vonósok és StringIO tárgyakat, SocketReader olvasni aljzatok, vagy tárgyakat azonos a & icirc; (Recv_into szükséges). Ön cnan természetesen használjon io.RawIOBase objektumot.
Likre http-elemző a C akkor át saját visszahívások a C elemző, így végül sikerült feldolgozni aszinkron minden HTTP-patak. Visszahívás:
on_message_begin ()
on_path (út)
on_query_string (QUERY_STRING)
on_url (url)
on_fragment (részlet)
on_header_field (mező, last_was_value)
on_header_value (kulcs, érték)
on_headers_complete ()
on_body (darab)
on_message_complete ()
Például a HttpStream
ex:
#! / Usr / bin / env python
import aljzat
a http_parser.http import HttpStream
a http_parser.reader import SocketReader
def main ():
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; próbálni:
& 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; print p.headers ()
& Nbsp; print p.body_file (). Read ()
& Nbsp; végül:
& Nbsp; s.close ()
Ha __name__ == "__main__":
& Nbsp; main ()
Például a HttpParser:
#! / Usr / bin / env python
import aljzat
a http_parser.parser import HttpParser
def main ():
& Nbsp; p = HttpParser ()
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; body = []
& Nbsp; próbálni:
& Nbsp; s.connect (("gunicorn.org", 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org r n r n")
& Nbsp; míg a True:
& Nbsp; data = s.recv (1024)
& Nbsp; ha nem az adatok:
& Nbsp; szünetben
& Nbsp; recved = len (adatok)
& Nbsp; nparsed = p.execute (adatok, recved)
& Nbsp; érvényesíteni nparsed == recved
& Nbsp; Ha p.is_headers_complete ():
& Nbsp; print p.get_headers ()
& Nbsp; Ha p.is_partial_body ():
& Nbsp; body.append (p.recv_body ())
& Nbsp; Ha p.is_message_complete ():
& Nbsp; szünetben
& Nbsp; print "" .join (test)
& Nbsp; végül:
& Nbsp; s.close ()
Ha __name__ == "__main__":
& Nbsp; main ()
Még több docs a kódot (vagy használja a doc genererator).

követelmények :

  • Python
  • Cython ha kell újjáépíteni a C kód

Más szoftver fejlesztő Benoit Chesneau

tproxy
tproxy

12 May 15

http-parser
http-parser

12 May 15

Restkit
Restkit

5 Jun 15

Couchapp
Couchapp

14 Apr 15

Hozzászólások a http-parser

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!