x
1
    # 获取响应的一些信息:响应头,响应内容,响应状态码
2
    def get_response_info(self, response):
3
        analyzedResponse = self._helpers.analyzeResponse(
4
            response)  # analyzeResponse方法可用于分析HTTP响应,并获取有关它的各种关键详细信息。返回:IResponseInfo可以查询的对象以获取有关响应的详细信息。
5
        resHeaders = analyzedResponse.getHeaders()  # getHeaders方法用于获取响应中包含的HTTP标头。返回:响应中包含的HTTP标头。
6
        resBodys = response[
7
                   analyzedResponse.getBodyOffset():].tostring()  # getBodyOffset方法用于获取消息正文开始的响应中的偏移量。返回:消息正文开始的响应中的偏移量。response[analyzedResponse.getBodyOffset():]获取正文内容
8
        resStatusCode = analyzedResponse.getStatusCode()  # getStatusCode获取响应中包含的HTTP状态代码。返回:响应中包含的HTTP状态代码。
9
        for header in resHeaders:
10
            if 'Content-Length' in header:
11
                resLength = int(header.split(':')[1].strip())  # 我在这里增加了一个返回包长度检测
12
        return resHeaders, resBodys, resStatusCode, resLength
13
14
        # 获取服务端的信息,主机地址,端口,协议
15
        def get_server_info(self, httpService):
16
            host = httpService.getHost()
17
            port = httpService.getPort()
18
            protocol = httpService.getProtocol()
19
            ishttps = False
20
            if protocol == 'https':
21
                ishttps = True
22
            return host, port, protocol, ishttps
23
24
        # 获取请求的参数名、参数值、参数类型(get、post、cookie->用来构造参数时使用)
25
        def get_parameter_Name_Value_Type(self, parameter):
26
            parameterName = parameter.getName()
27
            parameterValue = parameter.getValue()
28
            parameterType = parameter.getType()
29
            return parameterName, parameterValue, parameterType
30
        
31
        
32
        
33
         # 获取请求的url
34
    def get_request_url(self, protocol, reqHeaders):
35
        link = reqHeaders[0].split(' ')[1]
36
        host = reqHeaders[1].split(' ')[1]
37
        return protocol + '://' + host + link
38
39
    # 保存结果
40
    def save(self, content):
41
        print (content)
42
        f = open('get_link.txt', 'at')
43
        f.writelines(content+'\n\n')
44
        f.close()
45
46
    def get_request_info(self, request):
47
        analyzedRequest = self._helpers.analyzeRequest(
48
            request)  # analyzeRequest用于分析HTTP请求,并获取有关它的各种关键详细信息。生成的IRequestInfo对象
49
        reqHeaders = analyzedRequest.getHeaders()  # 用于获取请求中包含的HTTP头。返回:请求中包含的HTTP标头。
50
        reqBodys = request[analyzedRequest.getBodyOffset():].tostring()  # 获取消息正文开始的请求中的偏移量。返回:消息正文开始的请求中的偏移量。
51
        reqMethod = analyzedRequest.getMethod()  # 获取请求方法
52
        reqParameters = analyzedRequest.getParameters()
53
        return analyzedRequest, reqHeaders, reqBodys, reqMethod, reqParameters