httpadapter.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:searx-stats2 作者: dalf 项目源码 文件源码
def extract_response(self, curl_error_code=None, curl_error_message=None):
        body = self._response_buffer.getvalue()
        status_code = self.curl_handler.getinfo(pycurl.HTTP_CODE)
        content_type = self.curl_handler.getinfo(pycurl.CONTENT_TYPE)

        # timings
        timing_infos = (
            ("TOTAL_TIME", pycurl.TOTAL_TIME),
            ("NAMELOOKUP_TIME", pycurl.NAMELOOKUP_TIME),
            ("CONNECT_TIME", pycurl.CONNECT_TIME),
            ("APPCONNECT_TIME", pycurl.APPCONNECT_TIME),
            ("PRETRANSFER_TIME", pycurl.PRETRANSFER_TIME),
            ("STARTTRANSFER_TIME", pycurl.STARTTRANSFER_TIME),
            ("REDIRECT_TIME", pycurl.REDIRECT_TIME),
            ("REDIRECT_COUNT", pycurl.REDIRECT_COUNT)
        )

        timings = {}
        for i in timing_infos:
            timings[i[0]] = self.curl_handler.getinfo(i[1])

        # certinfo
        try:
            certinfo = self.curl_handler.getinfo(pycurl.INFO_CERTINFO)

            dictcertinfo = []
            for cert in certinfo:
                d = {}
                for k, v in cert:
                    d[k] = v
                dictcertinfo.append(d)
        except UnicodeDecodeError:
            # FIXME ? trigger by curl_handler.getinfo(...)
            dictcertinfo = []

        # close
        self._response_buffer.close()
        self.curl_handler.close()

        # create object
        self.response = ResponseContainer(self.url, dictcertinfo, status_code,
                                          curl_error_code, curl_error_message,
                                          body, content_type, timings)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号