zoukankan      html  css  js  c++  java
  • Python 调用定点软件LiveBos 接口

    LiveBos的WSDL模式下有通用的接口

    execBizProcess(xs:string sessionId, xs:string bizProcessName, xs:string id, lbParameter[] params, lbParameter[] variables, )
    

      但是上述接口的params变量无法在Python中实现,只能采用RESTFul形式,传递的参数一定要用JSON格式,如

    requestdata_json = json.dumps(requestdata, separators=(',', ':'))
    

      

    实例:

    # -*- coding: utf-8 -*-
    """
    @desc: SMS Sending though LiveBos of Apexsoft
    @author: Bionw
    @contact: wangheng@tjotc.com.cn
    @version: v0.1
    """
    
    import requests, json, sys, getopt, time
    
    # from urllib import request
    
    # URL = 'http://192.168.1.1:8101/service/LBREST' # Test enviroment
    URL = 'http://192.168.1.4:8101/service/LBREST' # Production enviroment
    login_URL = URL + '/userService/login'
    exec_URL = URL + '/biz/execProcess'
    service_user_id = 'webservice'
    service_user_password = '000000'
    
    """
    Get User SessionId
    """
    
    
    def get_session():
        login_data = dict(userId=service_user_id, password=service_user_password)
        r = requests.get(login_URL, login_data)
        r.encoding = 'utf-8'
        r_json = r.json()
        sessionID = r_json['sessionId']
        return  sessionID
    
    
    """
    Send Sms
    """
    
    
    def send_sms(phone_number,message):
    
        # 短信核心参数
        interface_name = 'TXXFS_XZDX'  # 接口名称
        message_type = 1  # 1|短信;2|邮件 XXLX
        message = message  # XXNR 信息内容
        phone_number = phone_number  # JSR 接收人
        sender = 'NAGIOS_SYS'  # FSR 发送人
        send_date = time.strftime("%Y/%m/%d")  # PREFSRQ 预定发送日期
        send_time = time.strftime("%H:%M:%S")  # PREFSSJ 预定发送时间
    
        params = {
            'XXLX': message_type,
            'XXNR': message,
            'FSR': sender,
            'JSR': phone_number,
            'PREFSRQ': send_date
        }
    
        requestdata = {
            'bizProcessName': interface_name,
            'params': params
        }
    
        requestdata_json = json.dumps(requestdata, separators=(',', ':'))
    
        SMS_content = {  # post数据集
            'sessionId': get_session(),
            'requestData': requestdata_json
        }
    
        # print(SMS_content)
    
        r = requests.post(exec_URL, SMS_content)
        r.encoding = 'utf-8'
        r_json = r.json()
        if r_json['result'] == 1:
            return '发送成功'
        else:
            return '发送失败'
    
    
    def main(argv):
        # phone_number = ''
        # message_content = ''
        try:
            opts, args = getopt.getopt(argv, "hp:m:", ["phone=", "message="])
        except getopt.GetoptError:
            print('request.py -p <phone number> -m <message>')
            sys.exit(2)
        for opt, arg in opts:
            if opt == '-h':
                print('request.py -p <phone number> -m <message>')
                sys.exit()
            elif opt in ("-p", "--phone"):
                phone_number = arg
            elif opt in ("-m", "--message"):
                message_content = arg
        print('输入的号码为:', phone_number)
        print('发送的内容为:', message_content)
        print(send_sms(phone_number,message_content))
    
    
    if __name__ == '__main__':
        main(sys.argv[1:])
  • 相关阅读:
    Educational Codeforces Round 3 B
    Educational Codeforces Round 3 A
    BestCoder Round #66 1002
    Codeforces Round #335 (Div. 2) B
    BestCoder Round #66 1001
    Codeforces Round #335 (Div. 2) C
    Linux加载DTS设备节点的过程(以高通8974平台为例)
    高通APQ8074 spi 接口配置
    摩托罗拉SE4500 德州仪器TI Omap37xx/AM3715/DM3730/AM3530 wince6.0/Windows Mobile 6.5平台 二维软解调试记录及相关解释
    摩托罗拉SE4500 三星 S3C6410 Wince6.0平台软解码调试记录以及驱动相关问题解释
  • 原文地址:https://www.cnblogs.com/bionexit/p/13300825.html
Copyright © 2011-2022 走看看