1. 程式人生 > 實用技巧 >Python 呼叫定點軟體LiveBos 介面

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: [email protected] @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:])