http服务消费者(python)
概述
此示例演示如何使用python_sdk编写tcp服务消费(invoker)程序,python_sdk提供简单易用的接口给客户调用,与服务端通信/响应通告等细节sdk内部都完现了,用户无需花时间在这些细节上,而是专注于自身业务逻辑。
示例源文件: python_sdk/sample_tcp_invk.cpp
示例准备:先运行服务端cppcloud_serv,记下ip地址和端口。
示例代码
如下给出的是关键语句伪代码。
import cppcloud
import threading
invokerServiceName = 'httpApp1' # 调用的服务名
def main():
if not cppcloud.init('vpc2', 4800, svrname='TestHttpInvoker'):
return -1
inker = cppcloud.invokerObject(invokerServiceName)
inker.setRefreshTimeout(100) # 刷新服务列表时间
inker.setInvokeTimeout(3) # 调用时默认超时
if inker:
sendStr = ''
while "q" != sendStr:
sendStr = input('input message to send out(input "q" exit):').strip()
print(("invoker sendding " + sendStr))
result, rspmsg, errhand = inker.call(invokerServiceName, 'POST',
data=sendStr)
print(("Response " + str(result) + "| " + rspmsg))
if errhand: errhand(result)
cppcloud.uninit()
if __name__ == "__main__":
main()
启动运行
说明
- 语句
inker=cppcloud.invokerObject(regname1, regname2,..)
传递所有要调用到的服务名到可变参数,返回消费者调用对象inker,主要调用其call方法完成调用获得响应;if errhand: errhand(result)
是对本次调用的反馈,以便让后台得知某个服务调用时的成功次数和失败次数;
启动运行
先把示例代码中的
vpc2
修改为你当前的cppcloud_serv的服务地址;python sample_http_invk.py
演示结果
程序执行, 并输入了cppcloud_test
, 请求用的是POST方式