面向对象的http请求

Winne的Python项目详细描述


温尼

教程

wy = Winney(host="www.baidu.com")
wy.add_url(method="get", uri="/", function_name="download")
wy.download()
t = wy.get_bytes()
print(t)

最佳实践

from winney import Winney

from config import ZEUS_HOST, ZEUS_PORT, APP_TYPE, ZEUS_TOKEN_HEADER, ZEUS_TOKEN_VALUE


class Zeus(object):
    def __init__(self, host, port):
        self.winney = Winney(host=host, port=port, headers={ZEUS_TOKEN_HEADER: ZEUS_TOKEN_VALUE})
        self.init_functions()
    
    def init_functions(self):
        self.winney.add_url(method="get", uri="/zeus/app_types/",           function_name="get_types")
        self.winney.add_url(method="get", uri="/zeus/app_types/{type_id}",  function_name="get_type")
        self.winney.add_url(method="get", uri="/zeus/accounts/{user_id}",   function_name="get_user_info")
        self.winney.add_url(method="get", uri="/zeus/application/{app_id}", function_name="get_app_info")
        self.winney.add_url(method="get", uri="/zeus/applications/",        function_name="get_apps")
    
    def get_data(self, r):
        if not r.ok():
            return None
        data = r.get_json()
        if data["code"] != 0:
            print("Failed to get zeus data, response = ", data)
            return None
        return data["data"]
    
    def get_apps(self, user_id):
        r = self.winney.get_apps(headers={"Authorization": "Token {}".format(user_id)}, user_id=user_id)
        return self.get_data(r)

    def get_types(self):
        r = self.winney.get_types()
        return self.get_data(r)
    
    def get_type_by_id(self, type_id):
        r = self.winney.get_type(type_id=type_id)
        return self.get_data(r)
    
    def get_user_info(self, user_id):
        r = self.winney.get_user_info(user_id=user_id)
        return self.get_data(r)
    
    def get_app_info(self, app_id):
        r = self.winney.get_app_info(app_id=app_id)
        return self.get_data(r)


zeus = Zeus(host=ZEUS_HOST, port=ZEUS_PORT)
zeus.get_app_info("123456)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当一个字段的名称发生变化时,java如何解析这些数据?   编写一个java getBonusPercentage()方法来返回员工的奖金加工资   java向Android活动添加容器和操作栏。   java JVM在切换网络访问点后找不到类   Java Matcher慢速正则表达式   java Android片段视图,带有垂直滚动条和左右滑动手势检测   如何在java中找到数组的所有子集?   java无法从给定源创建信封,因为根元素未命名为envelope   java JavaFX矩形旋转轴从左上角以外的点开始   java Tomcat从关系中获取临时对象   java HttpSession和ServletContext没有给出期望的结果   java EditText正在将自身复制到另一个EditText字段   Jsoup之间的区别是什么。parse()和Jsoup。java中的ParseBodyFragment()?   TableView中的java订单列   函数式编程“展开”可选或可选。在Java流(或并行流)中返回前为空   java如何下载Google Play Games服务保存的游戏快照数据,静默?