Как мне работать с этим API, у которого неправильный порт в wsdl?

#php #soap

Вопрос:

Я работаю с API, который ведет себя не так, как я ожидал бы.

Я использую PHP и soap-клиент для выполнения запросов к API с помощью этого WSDL:

https://product.companyurl.co.uk:9450/Product.svc?wsdl

Это не работает и вызывает ошибку независимо от того, использую ли я soapui или любую конфигурацию клиента PHP soap, которую я могу найти в переполнении стека.

Однако, если я удалю порт и использую:

https://product.companyurl.co.uk/Product.svc?wsdl

Я могу просмотреть WSDL в своем браузере, и, похоже, он работает.

Проблема в том, что WSDL ссылается на 18 .xsd файлов в нем, которые также имеют один и тот же номер порта в них:

https://product.companyurl.co.uk:9450/Product.svc?xsd=xsd0

Опять же, порт здесь останавливает работу URL-адреса в браузере и вызывает ошибку в soapui или PHP soap клиенте.

Я загрузил WSDL локально и заменил все вхождения :9450 как в WSDL, так и в локальных копиях файлов .xsd.

Это сработало в пользовательском интерфейсе soap, вернуло все методы и, казалось, показало многообещающие результаты.

Однако я не могу запускать какие-либо методы, используя мою измененную версию api.

Я исхожу из предположения, что здесь что-то не так.

Простой версией моего вопроса было бы: почему они добавили это :9450 в WSDL, который, похоже, нарушает его, и могу ли я переопределить его, подключившись к API, чтобы я мог делать запросы?

Для справки, ошибка php, которую она возвращает, такова:

Фатальная ошибка: Неперехваченное исключение SoapFault: [WSDL] SOAP-ОШИБКА: Схема синтаксического анализа: не удается импортировать схему из ‘https://product.companyurl.co.uk:9450/Product.svc?xsd=xsd0’

Спасибо

Комментарии:

1. Вы разговаривали с людьми, которые предоставляют эту услугу?

2. Они изучают это, но прошло уже две недели, так что мне интересно, есть ли обходной путь, или я просто что-то не так понял.

3. Загрузка WSDL и замена ссылок на XSD должны помочь, как видно из SoapUI, который в конечном итоге может загрузить определения. Затем вы говорите: «Однако я не могу запускать какие-либо методы, используя мою измененную версию api» , Что вы имеете в виду под этим? Какую конечную точку службы вы вызываете? Работает ли выполнение звонков из SoapUI?

4. Спасибо, Богдан. В SoapUI он открывает wsdl, а затем все xsd-файлы. Пользовательский интерфейс Soap затем показывает все методы, которые я хотел бы вызвать, на левой панели. Однако использование этих методов не работает. Я звоню в конечную точку продукта, но звонки из SoapUI не работают.

5. Моя ошибка. У меня возникла проблема с неправильным паролем. Я думаю, что теперь это сработает. Спасибо