Приветствую!
Нужно организовать обмен с сервисом SOAP по HTTPS. Прочитал, что смог найти, однако так и не понимаю как это организовать. Не хватает опыта и информации. Сложность в том, что авторизация на сервисе должна проходить по логину-паролю и клиентскому сертификату. На данный момент, хотелось бы использовать высокоуровневые методы объектов MSSOAP. Низкоуровневые пока сложно. Вот, что на сейчас получается, пример взят с англоязычного форму:
И оно естественно не работает. На вызове метода вылетает в ошибку с описанием "неизвестное имя".
В самом файле метод описан как:
Так как не могу предоставить ни логина с паролем, ни сертификата, то проверять и тестировать сложно. Поэтому буду рад любой помощи, комментам, примерам, вобщем любой информации.
Нужно организовать обмен с сервисом SOAP по HTTPS. Прочитал, что смог найти, однако так и не понимаю как это организовать. Не хватает опыта и информации. Сложность в том, что авторизация на сервисе должна проходить по логину-паролю и клиентскому сертификату. На данный момент, хотелось бы использовать высокоуровневые методы объектов MSSOAP. Низкоуровневые пока сложно. Вот, что на сейчас получается, пример взят с англоязычного форму:
Код:
Dim $oMyError
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
Dim $SOAPClient
$SOAPClient = ObjCreate("MSSOAP.SOAPClient30")
$SOAPClient.mssoapinit("c:\..AutoRegService.wsdl")
If @error then
ConsoleWrite( $SOAPClient.faultString)
ConsoleWrite( $SOAPClient.detail)
Endif
$SOAPClient.ConnectorProperty("AuthUser") = "##"
$SOAPClient.ConnectorProperty("AuthPassword") = "##"
$SOAPClient.ConnectorProperty("EndPointURL") = "https://..."
$SOAPClient.ConnectorProperty("SSLClientCertificateName") = "..."
$SOAPClient.ConnectorProperty("UseSSL") = 1
If @error then
ConsoleWrite($SOAPClient.faultString)
ConsoleWrite($SOAPClient.detail)
Endif
$M = $SOAPClient.metod("##", "##", "##", "##")
If @error then
ConsoleWrite($SOAPClient.faultString)
ConsoleWrite($SOAPClient.detail)
Endif
;This is COM error handler
Func MyErrFunc()
$HexNumber=hex($oMyError.number,8)
Msgbox(0,"COM Error Test","We intercepted a COM Error !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & $HexNumber & @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext _
)
SetError(1) ; to check for after this function returns
Endfunc
И оно естественно не работает. На вызове метода вылетает в ошибку с описанием "неизвестное имя".
В самом файле метод описан как:
Код:
<message name='metod'>
<part name='par1' type='xsd:string'></part>
<part name='par2' type='xsd:string'></part>
<part name='par3' type='xsd:string'></part>
<part name='par4' type='xsd:string'></part>
</message>
Так как не могу предоставить ни логина с паролем, ни сертификата, то проверять и тестировать сложно. Поэтому буду рад любой помощи, комментам, примерам, вобщем любой информации.