• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Web Service

  • Автор темы Автор темы doka
  • Дата начала Дата начала
D

doka

Здравствуйте!

Хотел бы спросить по такой древней теме как web-сервисы.
Имею лотус и web-сервис на рнр(http://front.fastpoint.ru/front-test.php?wsdl)
С подключением, вроде бы, проблем нет:

sWSDL = "http://front.fastpoint.ru/front-test.php?wsdl"
Set Client =CreateObject("MSSOAP.SoapClient30")
Call Client.mssoapinit(sWSDL)

С вызовом функции, в которой все параметры типа string, тоже проблем нет: Set o1 = Client.AddPackageTest1("", "", "", "", "", "", "")

Проблема возникает с функцией(Set o1 = Client.AddPackageTest2(perem, "", "", "", "", "", "") ), в которой параметр имеет тип "корреспондент":

<xsd:complexType name="Correspondent">
<xsd:all>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="address" type="xsd:string"/>
<xsd:element name="contactPerson" type="xsd:string"/>
<xsd:element name="contactPhone" type="xsd:string"/>
</xsd:all>
</xsd:complexType>

Чтобы я ему не скармливал(массив, список), выдает ошибку несоответствия типов. Создавал даже у себя класс "correspondent" as XSD_ANYTYPE - не помогло.

Создал у себя web consumer на основе url выше. Проблем не возникло с использованием функций. Как правильно работать с внешними web-сервисами?

Поделитесь мудростью)
 
doka
Мало я с ними работал, но может поможет.
Лично я импортировал wsdl в lotus, затем делал агента, в который был подключен данный webService.
После этого все работало.
CreateObject("MSSOAP.SoapClient30") не использовал.
Мой пример для
В лотусе сохранен как Wev Service Consumer под именем morpher
Код:
Option Public
Option Declare
Use "morpher"
Sub Initialize
On Error GoTo handler

Dim k As New Morphersoap_n0()

Dim d As New Xsd_decimal()
Dim res As Variant

Call d.Setvaluefromstring("13")

Set res = k.Propisrub(d)

GoTo endh
handler:
MsgBox "Error in line " & Erl & Chr(10) & Chr(13) & error$
Resume endh
endh:
End Sub
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab