PHP SoapClient на tcp-порту 808

#php #web-services #soap

#php #веб-сервисы #soap

Вопрос:

Обычно использование SOAP через порт 80 просто:

 $client = new SoapClient('http://domain.com/webservice?wsdl');
  

Как бы вы использовали веб-сервис через другой tcp-порт? (Не 80 или 443)

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

1. вы пробовали http://domain.com:808/webservice?wsdl ?

Ответ №1:

Попробуйте :

http://domain.com:808/webservice?wsdl

=>

$client = new SoapClient('http://domain.com:808/webservice?wsdl');

Термин :808 указывает номер порта URI, если вы его опустите, он будет использовать номер порта по умолчанию для указанного протокола. (80: для HTTP)

RFC 3986:

В общем случае URI, который использует общий синтаксис для полномочий с пустым путем, должен быть нормализован до пути «/». Аналогично, явный «:port», для которого порт пуст или используется по умолчанию для
схемы, эквивалентен тому, где порт и его разделитель «:» пропущены и, следовательно, должны быть удалены путем нормализации на основе схемы. Например, второй URI выше является обычной формой для схемы «http»
.

Хороший обзор URI находится здесь.

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

1. Спасибо. Я попробовал это, и это не удалось, но это потому, что поставщик случайно закрыл 808, не сказав мне. В любом случае спасибо. Это правильный ответ для всех, у кого есть такой же вопрос.

2. Обратите внимание, что PHP не позволит вам указывать порт при использовании HTTPS.