http-parser

צילום מסך תוכנה:
http-parser
פרטי תוכנה:
גרסה: 0.8.3
טען תאריך: 20 Feb 15
מפתחים: Benoit Chesneau
רשיון: ללא תשלום
פופולריות: 16

Rating: nan/5 (Total Votes: 0)

http-מנתח הוא מנתח HTTP בקשה / תגובה לפייתון בC תחת רישיון MIT, המבוסס על http-מנתח מריאן דאל.
התקנה:
PIP להתקין http-מנתח
או להתקין ממקור:
git clone git: //github.com/benoitc/http-parser.git
cd http-מנתח && פיתון setup.py להתקין
שימוש:
http-מנתח לספק לך מנתח ברמה הנמוכה parser.HttpParser בC שאתה יכול לגשת בתכנית פיתון וhttp.HttpStream מתן גישה ברמה גבוהה יותר לאובייקט קריא, רציף io.RawIOBase.
כדי לעזור לך בעבודת היום שלך, prvides http-מנתחך 3 סוג של קוראים במודול הקורא: IterReader לקרוא iterables, StringReader לקורא מחרוזות וחפצי StringIO, SocketReader לקרוא שקעים או אובייקטים עם אותו וicirc; (נדרש recv_into). אתה cnan כמובן להשתמש בכל אובייקט io.RawIOBase.
Likre http-מנתח בC אתה יכול להעביר התקשרויות חזרה שלך למנתח C, כך סופו של דבר אתה יכול לנתח באופן אסינכרוני כל זרם HTTP. התקשרויות חזרה הן:
(On_message_begin)
on_path (נתיב)
on_query_string (QUERY_STRING)
on_url (url)
on_fragment (בר)
on_header_field (שדה, last_was_value)
on_header_value (מפתח, ערך)
on_headers_complete ()
on_body (נתח)
on_message_complete ()
דוגמא לHttpStream
לשעבר:
#! / Usr / bin / פיתון env
שקע יבוא
מיבוא http_parser.http HttpStream
מSocketReader יבוא http_parser.reader
def ראשי ():
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; לנסות:
& Nbsp; s.connect (('gunicorn.org', 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org n r n r ")
& Nbsp; r = SocketReader (ים)
& Nbsp; p = HttpStream (r)
& Nbsp; p.headers הדפסה ()
& Nbsp;. P.body_file הדפסה () לקרוא ()
& Nbsp; לבסוף:
& Nbsp; s.close ()
אם __name__ == "__main__":
& Nbsp; main ()
דוגמא לHttpParser:
#! / Usr / bin / פיתון env
שקע יבוא
מיבוא http_parser.parser HttpParser
def ראשי ():
& Nbsp; p = HttpParser ()
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; גוף = []
& Nbsp; לנסות:
& Nbsp; s.connect (('gunicorn.org', 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org n r n r ")
& Nbsp; ואילו אמיתי:
& Nbsp; נתונים = s.recv (1024)
& Nbsp; אם לא נתונים:
& Nbsp; הפסקה
& Nbsp; = len recved (נתונים)
& Nbsp; nparsed = p.execute (נתונים, recved)
& Nbsp; טוען == nparsed recved
& Nbsp; אם p.is_headers_complete ():
& Nbsp; p.get_headers הדפסה ()
& Nbsp; אם p.is_partial_body ():
& Nbsp; body.append (p.recv_body ())
& Nbsp; אם p.is_message_complete ():
& Nbsp; הפסקה
& Nbsp; הדפסה "" .join (גוף)
& Nbsp; לבסוף:
& Nbsp; s.close ()
אם __name__ == "__main__":
& Nbsp; main ()
. אתה יכול למצוא עוד מסמכים בקוד (או להשתמש genererator doc)

דרישות :

  • Python
  • Cython אם אתה צריך לבנות מחדש את קוד C

תוכנות אחרות של יזם Benoit Chesneau

tproxy
tproxy

12 May 15

Restkit
Restkit

5 Jun 15

http-parser
http-parser

12 May 15

Couchapp
Couchapp

14 Apr 15

תגובות ל http-parser

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!