#php #nusoap
Вопрос:
я использую nusoap для веб-сервисов для интеграции api отеля в свое веб-приложение.
Я создаю soapclient и вызываю веб-сервис. запрос есть
POST /API/xyz.asmx HTTP/1.0 Агент пользователя: NuSOAP/0.6.3 Ведущий: xyz.com Авторизация: xyz Тип содержимого: текст/xml; кодировка="ISO-8859-1" Содержание-Длина: 646 Мыльное действие: "xyz" <?версия xml="1.0" кодировка="ISO-8859-1"?><?версия xml="1.0" кодировка="ISO-8859-1"?><SOAP-ENV:Конверт SOAP-ENV:Стиль кодирования="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd"><SOAP-ENV:Конверт SOAP-ENV:Стиль кодирования="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd"><SOAP-ENV:Тело> <имя пользователя xsi:тип="xsd:строка">xyz<имя пользователя xsi:тип="xsd:строка"></имя пользователя>xxx000000</имя пользователя></hotel_id></hotel_id></ns1:getwebservice>
и реакция такая
HTTP/1.1 200 ОК Контроль кэша: приватный, максимальный возраст=0 Тип содержимого: текст/xml; кодировка=utf-8 Сервер: Microsoft-IIS/7.5 X-AspNet-Версия: 2.0.50727 Дата: Вт, 31 мая 2011 07:18:28 GMT Соединение: закрыть Содержание-Длина: 387 <?версия xml="1.0" кодировка="utf-8"?><?версия xml="1.0" кодировка="utf-8"?><soap:Конверт xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><мыло:Конверт xmlns:мыло="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><мыло:Тело><мыло:Тело><Get_hotel_infoResponse xmlns="http://tempuri.org/"><Get_hotel_infoResponse xmlns="http://tempuri.org/"><getwebservice><getwebservice><отели xmlns="" /><отели xmlns="" /></getwebserviceResult></getwebserviceResult></мыло:Тело></мыло:Тело></мыло:Конверт> </SOAP-ENV:Тело></SOAP-ENV:Тело></SOAP-ENV:Конверт>
Я получаю xml-ответ пустым в ответе ,то есть, как я мог получить xml — данные в ответ.
Я не получаю ссылку xmlns в ответ. так как же это произойдет?
Комментарии:
1. проверьте документацию для этого конкретного api, независимо от того, что вы используете.
2. В своем запросе вы, похоже, не закрыли свои
<SOAL-ENV:Envelope>
<SOAP-ENV:body>
теги или. Или вы просто скопировали вставили его неправильно?3. извините,что я вставил его неправильно, просто отредактировал, посмотрите на этот код.
4. кстати, вам не нужно использовать
<pre>
теги и сущности, чтобы код отображался в вопросах SO; просто сделайте отступ в коде на 4 пробела, и он будет хорошо отформатирован для вас.
Ответ №1:
Не используйте NuSOAP, он давно мертв. Используйте встроенный PHP SoapClient
.
Комментарии:
1. для меня SoapClient из PHP действительно плох. только ошибка (чем SOAPUI без ошибок) с тем же wsdl. NuSOAP-это хорошо