http-parser

Software skärmdump:
http-parser
Mjukvaruinformation:
Version: 0.8.3
Ladda upp dagen: 20 Feb 15
Utvecklare: Benoit Chesneau
Licens: Gratis
Popularitet: 2

Rating: nan/5 (Total Votes: 0)

http-parser är en HTTP-begäran / svar parser för Python i C under MIT License, baserad på http-parser från Ryan Dahl.
Installation:
PiP installera http-parser
Eller installera från källa:
git clone git: //github.com/benoitc/http-parser.git
CD http-parser && Python setup.py installera
Användning:
http-parser ger dig parser.HttpParser lågaktivt parser i C som du kan komma i din python-program och http.HttpStream ger tillgång på högre nivå till en läsbar, sekventiell io.RawIOBase objekt.
För att hjälpa dig i ditt arbete, http-parser prvides dig 3 typ av läsare i läsaren modulen: IterReader läsa iterables, StringReader till läser strängar och StringIO föremål, SocketReader läsa uttag eller objekt med samma a & icirc; (Recv_into behövs). Du cnan naturligtvis använda någon io.RawIOBase objekt.
Likre http-parser i C kan du skicka dina egna callbacks till C parser, så du kan så småningom tolka asynkront någon HTTP ström. Callbacks är:
on_message_begin ()
on_path (väg)
on_query_string (QUERY_STRING)
on_url (url)
on_fragment (fragment)
on_header_field (fält, last_was_value)
on_header_value (nyckel, värde)
on_headers_complete ()
on_body (bit)
on_message_complete ()
Exempel på HttpStream
ex:
#! / Usr / bin / env python
import socket
från http_parser.http import HttpStream
från http_parser.reader import SocketReader
def main ():
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; prova:
& Nbsp; s.connect (('gunicorn.org ", 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org r n r n")
& Nbsp; r = SocketReader (er)
& Nbsp; p = HttpStream (r)
& nbsp; utskrifts p.headers ()
& Nbsp;. Print p.body_file () läsa ()
& Nbsp; äntligen:
& Nbsp; s.close ()
Om __name__ == "__main__":
& Nbsp; main ()
Exempel på HttpParser:
#! / Usr / bin / env python
import socket
från http_parser.parser import HttpParser
def main ():
& Nbsp; p = HttpParser ()
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; kropp = []
& Nbsp; prova:
& Nbsp; s.connect (('gunicorn.org ", 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org r n r n")
& Nbsp; medan sant:
& nbsp; uppgifter = s.recv (1024)
& Nbsp; om inte uppgifter:
& Nbsp; break
& Nbsp; recved = len (data)
& Nbsp; nparsed = p.execute (data, recved)
& Nbsp; hävda nparsed == recved
& Nbsp; om p.is_headers_complete ():
& nbsp; utskrifts p.get_headers ()
& Nbsp; om p.is_partial_body ():
& Nbsp; body.append (p.recv_body ())
& Nbsp; om p.is_message_complete ():
& Nbsp; break
& Nbsp; print "" .join (kroppen)
& Nbsp; äntligen:
& Nbsp; s.close ()
Om __name__ == "__main__":
& Nbsp; main ()
. Du kan hitta fler docs i koden (eller använd en doc genererator)

Krav :

  • Python
  • Cython om du behöver bygga om C-kod

Annan programvara för utvecklare Benoit Chesneau

fserve
fserve

11 May 15

http-parser
http-parser

12 May 15

tproxy
tproxy

12 May 15

Restkit
Restkit

5 Jun 15

Kommentarer till http-parser

Kommentarer hittades inte
Kommentar
Slå på bilder!