http-parser

Phần mềm chụp màn hình:
http-parser
Các chi tiết về phần mềm:
Phiên bản: 0.8.3
Ngày tải lên: 20 Feb 15
Nhà phát triển: Benoit Chesneau
Giấy phép: Miễn phí
Phổ biến: 2

Rating: nan/5 (Total Votes: 0)

http-phân tích cú pháp là một phân tích cú pháp HTTP request / response cho Python trong C thuộc MIT License, dựa trên http-phân tích cú pháp từ Ryan Dahl.
Cài đặt:
pips cài đặt http-phân tích cú pháp
Hoặc cài đặt từ nguồn:
git clone git: //github.com/benoitc/http-parser.git
cd http-phân tích cú pháp && python setup.py cài đặt
Cách sử dụng:
http-phân tích cú pháp cung cấp cho bạn parser.HttpParser cấp thấp tích cú pháp trong C mà bạn có thể truy cập vào chương trình python của bạn và http.HttpStream cung cấp truy cập cấp cao hơn để có thể đọc được một, tuần tự đối tượng io.RawIOBase.
Để giúp bạn trong ngày làm việc của bạn, http-phân tích cú pháp prvides bạn 3 loại độc giả trong module đọc: IterReader đọc iterables, StringReader để đọc chuỗi và các đối tượng StringIO, SocketReader để đọc ổ cắm hoặc các đối tượng với một cùng & icirc; (Recv_into cần thiết). Bạn cnan của khóa học sử dụng bất kỳ đối tượng io.RawIOBase.
Likre http-phân tích cú pháp trong C bạn có thể vượt qua callbacks của riêng bạn để phân tích cú pháp C, vì vậy cuối cùng bạn có thể phân tích cú pháp không đồng bộ bất kỳ dòng HTTP. Hàm hồi là:
on_message_begin ()
on_path (đường dẫn)
on_query_string (QUERY_STRING)
on_url (url)
on_fragment (fragment)
on_header_field (lĩnh vực, last_was_value)
on_header_value (key, value)
on_headers_complete ()
on_body (chunk)
on_message_complete ()
Ví dụ về HttpStream
ex:
#! / Usr / bin / env python
import socket
từ nhập khẩu http_parser.http HttpStream
từ http_parser.reader nhập SocketReader
def main ():
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; thử:
& 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;. Print p.body_file () đọc ()
& Nbsp; cuối cùng:
& Nbsp; s.close ()
nếu __name__ == "__main__":
& Nbsp; main ()
Ví dụ về HttpParser:
#! / Usr / bin / env python
import socket
từ nhập khẩu http_parser.parser HttpParser
def main ():
& Nbsp; p = HttpParser ()
& Nbsp; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
& Nbsp; body = []
& Nbsp; thử:
& Nbsp; s.connect (('gunicorn.org', 80))
& Nbsp; s.send ("GET / HTTP / 1.1 r nHost: gunicorn.org r n r n")
& Nbsp; trong khi True:
& Nbsp; data = s.recv (1024)
& Nbsp; nếu không dữ liệu:
& Nbsp; nghỉ
& Nbsp; recved = len (dữ liệu)
& Nbsp; nparsed = p.execute (dữ liệu, recved)
& Nbsp; khẳng định == nparsed recved
& Nbsp; nếu p.is_headers_complete ():
& Nbsp; p.get_headers print ()
& Nbsp; nếu p.is_partial_body ():
& Nbsp; body.append (p.recv_body ())
& Nbsp; nếu p.is_message_complete ():
& Nbsp; nghỉ
& Nbsp; print "" .join (cơ thể)
& Nbsp; cuối cùng:
& Nbsp; s.close ()
nếu __name__ == "__main__":
& Nbsp; main ()
. Bạn có thể tìm thấy nhiều tài liệu trong các mã (hoặc sử dụng một genererator doc)

Yêu cầu :

  • Python
  • Cython nếu bạn cần phải xây dựng lại các mã C

Phần mềm khác của nhà phát triển Benoit Chesneau

Couchapp
Couchapp

14 Apr 15

hroute
hroute

11 May 15

http-parser
http-parser

12 May 15

fserve
fserve

11 May 15

Ý kiến ​​để http-parser

Bình luận không
Nhập bình luận
Bật hình ảnh!