Можно ли использовать ASP для вызова PHP soap?
У моего клиента есть веб-сервис PHP, который они хотят, чтобы я использовал. Он основан на PHP, в то время как мой веб основан на ASP.
Код ASP выглядит следующим образом:
Dim soapclient
WSDL_URL = "http://xxx.xxxx.xx/index.php?Action=service"
set soapclient = Server.CreateObject("MSSOAP.SoapClient30")
soapclient.ClientProperty("ServerHTTPRequest") = True
При ошибке возобновить следующий
Soapclient.mssoapinit ошибка WSDL_URL здесь
Может ли ASP вызывать soap-сервис на основе PHP?
Или
Что я должен настроить?
Большое спасибо!
4 answers
Весь смысл веб-сервисов и SOAP заключается в том, что не имеет значения, на каком языке реализована служба и на каком оборудовании и операционной системе она работает.
Либо в веб-службе есть ошибка, либо (что более вероятно) вы неправильно ее вызываете.
Я не знаю ASP, я знаю PHP, но у вас не должно возникнуть проблем с доступом к веб-сервисам PHP с любого другого языка, просто потому, что формат связи - XML. Оба приложения будут взаимодействовать с использованием третьего, промежуточного языка: XML. Все должно быть хорошо.
Мы находим способ решить этот вопрос, не используя "MSSOAP.SoapClient30" для запроса веб-службы, а "Msxml2.ServerXMLHTTP.4.0".
Пример кода, подобный этому:
Url= "http://xxx.xxx.xx/xxx.php"
Soaprequest="версия xml="&CHR(34)&"1.0"&CHR(34)&"кодировка="&CHR(34)&"utf-8"&CHR(34)&"?>" "http://www.w3.org/2001/XMLSchema-instance "&CHR(34)&" xmlns:xsd="и CHR(34)&"http://www.w3.org/2001/XMLSchema "&CHR(34)&" xmlns:soap="&CHR(34)&"http://schemas.xmlsoap.org/soap/envelope/"&CHR(34)&">
Установите xmlhttp = сервер.Создать объект ("Msxml2.ServerXMLHTTP.4.0")
Xmlhttp.Открыть "СООБЩЕНИЕ", URL, false
Xmlhttp.setRequestHeader "Тип содержимого", "текст/xml;кодировка=utf-8"
Xmlhttp.Задающий запрос "Длина содержимого", LEN(soaprequest)
Xmlhttp.Отправить(soaprequest)
Ответ.Напишите xmlhttp.responseText
Установить xmlhttp = Ничего
Для начала вам следует удалить "при следующей ошибке возобновить", чтобы вы могли видеть (и публиковать) полученную ошибку.