Soap и curl

До какого-то момента я пользовался программой SoapUI, программа интуитивно более-менее понятная, но как-то доказать факт того, что сторонний SOAP-сервер не возвращает данные, не представляется возможным и тут как всегда на помощь приходит Curl.

1. Формируем запрос, тут все почти просто:

curl -u login:password --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:sky:GetServiceLis" --data @request.txt http://host/erp/ws/skynet

sky это URN (Uniform Resource Name), в простонародью namespace (адресное пространство), оно определяется из полученной схемы. По сути это имя тега, которое будет использоваться в XML-запросе (см. пример ниже).

GetServiceLis - это метод, который будет вызван (один из методов, с которыми можно ознакомиться просто открыв адрес wsdl-ки http://host/erp/ws/skynet.

2. Создаем файл request.txt и помещаем в него xml запроса, который если сами не можете составить, то можно подсмотреть в программе SoapUI или с помощью PHP:

$this->soap = new \SoapClient('http://host/erp/ws/skynet', [
   'login' => 'login',
   'password' => 'password',
   'encoding' => 'UTF-8',
   'trace' => true,// обязательный параметр, без которого не будут работать дебаг-методы:
];

$this->connection->soap->__getLastRequest());
$this->connection->soap->__getLastResponse());

Как Вы уже поняли, эти дебаг-методы возвращают xml в виде строки, которую и нужно поместить в файл request.txt

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:sky="mytest-erp/skynet" xmlns:glob="mytest-erp/Global">
   <soap:Header/>
   <soap:Body>
      <sky:GetServiceLis>
         <sky:parameters>
            <glob:OnlyChanged>false</glob:OnlyChanged>
            <!--Optional:-->
            <glob:MaximumObjectsInResult>100</glob:MaximumObjectsInResult>
         </sky:parameters>
      </sky:GetServiceLis>
   </soap:Body>
</soap:Envelope>

Удачки.

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » PHP »