Skip to main content

hehey-hclient 是一个python 客户端请求工具组件,常用于接口的调用

Project description

hehey-hclient 组件

介绍

  • hehey-hclient 是一个python 客户端请求工具组件,常用于接口的调用

依赖以及版本要求

  • python >= 3.5
  • pycurl

安装

  • 直接下载:

  • 命令安装:
pip install hehey-hclient

基础文件以目录

参数配置

# 所有配置
conf = {
    'customSites': {
        'xwsite': {
            'host': 'http://api.xxx.cn/',
            'method': 'POST',
            'response': {
                'clazz': 'service',
                'format': "json"
            }
        },

        'bcsite': {
            'transport': "socket",
            'clazz': 'http',
            'host': 'http://api.xxx.cn/',
            'method': 'POST',
            'response': {
                'clazz': 'service',
                'format': "json"
            }
        }
    }
};

# response 配置
responseConf = {
    'clazz':'request class name',# request 类名,比如http
    'host':'http://api.xxx.cn/',# 接口host 地址
    'format':'json',# 数据格式类型,
    'headers':{},# 默认header 信息
    'options':{},# 传输协议配置
    'method':'POST',
    'response':{ # resposne 配置
        'clazz':'service',# response 类
        'format':"json" # 数据格式类型,
    }
}

基本示例

  • 快速使用
from hclient.client import Client;

hclient = Client()
request = hclient.get('http://www.baidu.com/')
response = request.send()

# 获取response 返回的结果
html = response.getContent()
data = response.getData()
  • 发送HTTP,请求GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT,OPTIONS
from hclient.client import Client;

hclient = Client()
request = hclient.get('http://www.baidu.com/',{'user_id':2})
response = request.send()

# 获取response 返回的结果
html = response.getContent()

# 获取response 格式化后结果,比如json
data = response.setFormat('json').getData();
  • 发送服务站点api 接口
from hclient.client import Client;

hclient = Client({
    'customSites': {
        'xwsite': {
            'host': 'http://api.xxxx.cn/',
            'method': 'POST',
            'response': {
                'clazz': 'service',
                'format': "json"
            }
        },

        'bcsite': {
            'transport': "socket",
            'clazz': 'http',
            'host': 'http://api.xxxx.cn/',
            'method': 'POST',
            'response': {
                'clazz': 'service',
                'format': "json"
            }
        }
    }
})

# 方式1
response = hclient.service('site1','user/getinfo',{'user_id':2}).send()

# 获取response 结果
data = response.getData();

# 方式2
response = hclient.bcsite.service('user/getinfo',{'user_id':2}).send();
data = response.getData();
  • 批量发送请求
# 方式1

from hclient.client import Client;

hclient = Client()
request1 = hclient.get('http://www.baidu.com/')
request2 = hclient.get('http://www.baidu.com/')

requests = {
    'res1': request1,
    'res2': request2
}

responses = hclient.batchSend(requests);
html1 = responses['res1'].getContent()
html2 = responses['res2'].getContent()

# 方式2

from hclient.client import Client;

hclient = Client()
requestGroup = hclient.batch()
requestGroup.get('http://www.baidu.com/',index="res1")
requestGroup.get('http://www.baidu.com/',index="res1")

responses = requestGroup.send();

html1 = responses['res1'].getContent()
html2 = responses['res2'].getContent()
  • 即刻发送请求-直接获取结果
from hclient.client import Client;

hclient = Client()
html = hclient.getResult('http://www.baidu.com/')

# 支持getResult,postResult 等等
  • 验证请求错误
from hclient.client import Client;

hclient = Client()
response = hclient.post('http://www.baidu.com/',{'user_id':2}).send();

# 验证是否错误,验证网络,解析数据,Transport(传输层) 是否有错误
if response.hasError():
    # 请求错误
    pass
else:
    # 请求正常
    pass

# 验证是否网络错误,主要验证header http-code 状态码 是否等于20x
if response.hasNetworkError():
    # 请求错误
    pass
else:
    # 请求正常
    pass
    
    
# 获取错误信息
response.getErrors() # 获取全部错误
response.getFirstError() # 获取首个错误信息
  • 其他方法介绍
from hclient.client import Client;

hclient = Client()
request = hclient.service('http://www.baidu.com/',{"id":1})
request.setFormat("json") # 设置参数的格式
request.addHeaders("Content-Type",'application/json; charset=UTF-8');# 设置http 头部信息
request.setCookies({"name":1}) # 设置cookie

response = request.send()
response.getStatusCode() # 获取请求状态码
response.getHeaders() # 获取头部
response.getHeaders() # 获取头部对象
data = response.setFormat("json") # 设置返回内容的格式
  • 扩展
# 自定义request,重写其方法
from hclient.base.Request import Request
class HttpRequest(Request):

    def prepare(self):
    
        pass


# 自定义Response,重写其方法
from hclient.base.Response import Response

class ServiceResponse(Response):

    def __init__(self,attrs = {}):

        self.varCode = 'code'

        self.varMsg = 'message'

        self.varResult = 'data'

        self.defaultCode = 0

        self.errcode = ''

        self.errmsg = ''

        self._init = False

        if attrs:
            super().__init__(attrs)

    # 检查业务是否错误
    # <B> 说明: </B>
    # <pre>
    # 略
    # </pre>
    def check(self,errorCode = []):

        self.__initData()

        if not errorCode:
            errorCode = [self.defaultCode]

        if self.errcode in errorCode:
            return True
        else:
            return False


    def getCode(self):

        self.__initData()

        return self.errcode

    def getMessage(self):

        self.__initData()

        return self.errmsg

    def getResult(self):

        data = self.getData()
        result = data.get(self.varResult,None)

        return result

    def __initData(self):

        if self._init:
            return

        data = self.getData()

        self.errmsg = data.get(self.varMsg,None)
        self.errcode = data.get(self.varCode, None)
        self._init = True


# 对应的服务站点配置
conf = {
    'customSites': {
        'xwsite': {
            'clazz':'http',# 或hclient.protocol,HttpRequest.HttpRequest
            'host': 'http://api.xxx.cn/',
            'method': 'POST',
            'response': {
                'clazz': 'service',
                'format': "json"
            }
        },
    }
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hehey-hclient-1.3.9.tar.gz (18.9 kB view details)

Uploaded Source

File details

Details for the file hehey-hclient-1.3.9.tar.gz.

File metadata

  • Download URL: hehey-hclient-1.3.9.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/20.7.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.8

File hashes

Hashes for hehey-hclient-1.3.9.tar.gz
Algorithm Hash digest
SHA256 14b4cbb842735c469e313e062af4f7ae38d44a45e4dff940b78e7850acaa0c4f
MD5 df9cb57bd1fc3b149eff3408f822351e
BLAKE2b-256 d29df4d5ab00aa6b0dad96a40155b67918e1bb28987f2607f893dbddeaa5ec87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page