美文网首页
python简单校验Http服务

python简单校验Http服务

作者: 87eb915b0268 | 来源:发表于2018-02-03 18:13 被阅读113次

    凡事都从忙中错,谁人知向静中休

    业务程序员如何使用python,简单的检验自己逻辑,本文就简单的以http交互为例简单介绍下:
    首先封装下http请求工具类HttpUtil
    Get请求

    class HttpUtil(object):
    //Get参数拼接
        def parseParams(self, params):
            if params:
                result ="?"
                for key, valuein params.items():
                    result = result + key + "=" + value + "&"
                return result[:-1]
            return ''
    
    def httpGet(self, url="", headers={}, params={}):
        requestUrl = url +self.parseParams(params)
        request = urllib2.Request(requestUrl)
        for key, valuein headers.items():
            request.add_header(key, value)
        try:
            response = urllib2.urlopen(request)
        except urllib2.URLError, e:
            print e.message
        data = response.read()
        return data
    

    Post 请求

    def httpPost(self, url="", headers={}, params={}):
        data = urllib.urlencode(params)
        request = urllib2.Request(url=url, data=data)
        for key, valuein headers.items():
            request.add_header(key, value)
        try:
            response = urllib2.urlopen(request)
        except Exception as e:
            print e.message
        # print response.info()
        # print response.getcode()
        data = response.read()
    return data
    

    一般都有防止参数篡改Sign校验和身份认证Token

    def genToken(self, params):
    //实现略
    def genSign(self, params):
    //实现略
    

    同时可以提供通用配置类,对于不同环境(dev/test),拿取不同配置,此处只简单实现URI配置

    # -*- coding: utf-8 -*-
    
    import sys
    
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    class GlobalConfig(object):
    
        def xxConfig(self):
            config = "http://127.0.0.1:8080"
            return config
    

    至此,工具类已经简单实现了,下面就具体校验逻辑了,此处只请求url并简单的打印下返回值,并为对返回值和错误码做校验

    # encoding=utf8
    
    import json
    import sys
    
    from util.global_config import GlobalConfig
    from util.http_util import HttpUtil
    
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    class XxTest(object):
        def __init__(self):
            self.config = GlobalConfig()
    
        HEADERS = {'XX': 'xx'}
    
        def saveXx(self):
            url = self.config.xxConfig() + "/Xx/save"
            params = {'AA': 'a', 'BB': 'b'}
            print params
            print url
            api = HttpUtil()
            json_data = api.httpPostApi(url, XxTest.HEADERS, params)
            print (json.dumps(json.loads(json_data), indent=4, sort_keys=False, ensure_ascii=False))
        def getXx(self):
            url = self.config.xxConfig() + "/Xx/get"
            print url
            api = HttpUtil()
            json_data = api.httpGetApi(url, XxTest.HEADERS)
            print (json.dumps(json.loads(json_data), indent=4, sort_keys=False, ensure_ascii=False))
    
    # 调用
    if __name__ == "__main__":
        xxTest = XxTest()
        xxTest.getXx()
        xxTest.saveXx()
    

    这样就可以发送http请求到开发机器了
    这里只是简单的封装了Http请求,同理RPC也可以

    相关文章

      网友评论

          本文标题:python简单校验Http服务

          本文链接:https://www.haomeiwen.com/subject/qqnuzxtx.html