zoukankan      html  css  js  c++  java
  • 基于tcp协议,自行处理http报文

    class HttpRequest:


        '''http请求对象'''


        def __init__(self,protocol,data):

            self.__protocol = protocol

            self.__data = data


        def getHeaderParameter(self,parameterKey):

            __parameterValue = re.findall(r'%s: (.*) '%parameterKey,self.__data)

            if __parameterValue:

                parameterValue = __parameterValue[0].strip()

            else:

                parameterValue = None

            return parameterValue


        def getGetData(self):

            getData = None

            dataStr = re.findall(r' /?(.*) HTTP/1.1 ',self.__data)

            if dataStr:

                dataStr = dataStr[0].strip()

                dataStrList = re.split("&",dataStr)

                getData = {}

                for dataItem in dataStrList:

                    __dataStr = re.split("=",dataItem)

                    getData[__dataStr[0]] = __dataStr[1]

            return getData


        def getPostData(self):

            postData = None

            if self.__data.startswith("POST"):

                dataStr = re.findall(r' (.*)$',self.__data)[0].strip()

                dataStrList = re.split("&",dataStr)

                postData = {}

                for dataItem in dataStrList:

                    __dataStr = re.split("=",dataItem)

                    postData[__dataStr[0]] = __dataStr[1]

            return postData


        def sendHttpResponse(self,body):

            response = '''

    HTTP/1.1 200 OK

    Date: %s

    Server: h5gc

    Content-Type: text/html;charset=utf-8

    Content-Length: %d

    %s

    '''.lstrip() % (

                datetime.datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT'),

                len(body),

                body

            )

            self.__protocol.transport.write(response)

            self.__protocol.transport.loseConnection()


  • 相关阅读:
    模板
    CF1271E Common Number
    模板——长链剖分
    XJOI NOIP501/511训练22 ttt学字符串
    POJ 1151 Atlantis
    BZOJ 1014 [JSOI2008]火星人prefix
    Luogu P1856 [USACO5.5]矩形周长Picture
    CF716D Complete The Graph
    Luogu P2596 [ZJOI2006]书架
    HTML 学习之JavaScript作用域
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426432.html
Copyright © 2011-2022 走看看