Skip to content

forcemain/simple_http_parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simple_http_paser

简单介绍:

simple_http_paser 主要用于解析Socket Http Response, 对异步服务端粘包优雅处理,兼容PY2.7+


开发环境:

SY_ENV: MacOS 10.12.6
PY_ENV: Python2.7.10


快速安装:

git clone https://github.com/xmdevops/simple_http_paser
cd simple_http_paser
python setup.py install


使用方法:

#! -*- coding: utf-8 -*-


from agent.libs.simple_http_parser.http import HttpStream
from agent.libs.simple_http_parser.reader import SocketReader


def pack_post_data(uri, **kwargs):
    header_list = []
    for item in kwargs['headers'].iteritems():
        header_list.append('{0}: {1}'.format(item[0], item[1]))

    post_data = [
        '{0} {1} HTTP/1.1'.format(kwargs['method'], uri),
        '\r\n'.join(header_list),
        '\r\n{0}'.format(kwargs['body'])
    ]

    data = '\r\n'.join(post_data)

    return data


def unblock_mode_recv(sock, buffer_size=4096):
    r = SocketReader(sock)
    s = HttpStream(r)
    s.read(buffer_size=buffer_size)
    data = s.body.next()

    return data

Copyright:

2017.12.07 (c) Limanman xmdevops@vip.qq.com

About

simple socket http response parser for async rpc server

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages