1. 程式人生 > 其它 >soap方式呼叫webserver介面傳送簡訊

soap方式呼叫webserver介面傳送簡訊

1、前言
使用soap協議去呼叫webserver的介面來實現傳送簡訊的功能。
簡單的瞭解了下發現這是基於xml的,發現貌似不會這玩意呀,以為會有點小複雜來開始踩坑。
2、安裝包
pip install suds-jurko
# 注意py版本不同的話,這個包可能有差異。我這測試的py版本是3.6.8
3、找webserver介面地址
"http://xxx.xxx.xxx.xxx/msgws/service.asmx?wsdl"

# 找你需要的介面,都是wsdl形式的,或者讓第三方提供
4、具體實現
import http.client as client
import time
from suds.transport.https import HttpAuthenticated

from suds.client import Client


class SendMassage(object):
    def __init__(self, username, password, mobile, context):
        self._username = username
        self._password = password
        self._mobile = mobile
        self._context = context

    def get_current_timestamp(self):
        return int(round(time.time() * 1000))

    def suds_client(self):
        sms_url = "http://xxx.xxx.xxx.xxx/msgws/service.asmx?wsdl"
        auth = HttpAuthenticated(username=self._username, password=self._password)
        try:
            client = Client(sms_url, transport=auth)
            print(client)
						"""
						client 裡可以檢視有什麼方法和型別
						"""
            
            request = client.factory.create('MsgSend')  # 初始化方法
            # 傳引數
            request.YHM = self._username
            request.MM = self._password
            request.DestMobile= self._mobile
            request.MsgContent = self._context
            response = client.service.MsgSend(request)
            print(response)

        except Exception as e:
            print(e)