Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: SOAP помогите разобраться
 
 автор: AlMag   (19.08.2008 в 19:18)   письмо автору
 
 

Привет. Мне вот нужно выучить использование SOAP...
Я имею пример самого SOAP запроса и ответа, но не знаю куда его вставлять и как им пользоваться :)
Помогите, буду благодарен

  Ответить  
 
 автор: Loki   (20.08.2008 в 09:24)   письмо автору
 
   для: AlMag   (19.08.2008 в 19:18)
 

http://php.net/soap

  Ответить  
 
 автор: AlMag   (20.08.2008 в 12:39)   письмо автору
 
   для: Loki   (20.08.2008 в 09:24)
 

Да, спасибо, но я не пойму, как им пользоваться с XML?

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetClipInfo xmlns="http://vashserver.ru/webservices/">
      <sessionID>string</sessionID>
      <clipID>string</clipID>
    </GetClipInfo>
  </soap:Body>
</soap:Envelope>


например, такое

  Ответить  
 
 автор: Loki   (20.08.2008 в 15:33)   письмо автору
 
   для: AlMag   (20.08.2008 в 12:39)
 

Вы объясните что вы делаете-то? SOAP сервис? пытаетесь работать с SOAP сервисом? Хотите узнать что такое SOAP?

  Ответить  
 
 автор: AlMag   (20.08.2008 в 17:01)   письмо автору
 
   для: Loki   (20.08.2008 в 15:33)
 

Я хочу освоить этот протокол, научиться составлять SOAP-запросы, такой как вышеприведённый мною, в формате XML

  Ответить  
 
 автор: Loki   (20.08.2008 в 17:26)   письмо автору
 
   для: AlMag   (20.08.2008 в 17:01)
 

почитайте тут:
http://www.w3.org/2002/07/soap-translation/russian/part0.html

  Ответить  
 
 автор: AlMag   (20.08.2008 в 19:09)   письмо автору
 
   для: Loki   (20.08.2008 в 17:26)
 

Я читал там...
можете помочь мне разобраться в этом примере?
http://ua2.php.net/manual/ru/function.soap-soapclient-soapcall.php#76831

  Ответить  
 
 автор: Loki   (21.08.2008 в 19:48)   письмо автору
 
   для: AlMag   (20.08.2008 в 19:09)
 

<?
$parameters 
= new Test//создаем класс
$parameters -> account $username//в который помещаем параметры
$parameters -> password $password;  //для передачи серверу

    
$client = new SoapClient ("https://www.somewebsite.com/Service.asmx?wsdl", array('classmap' => array('CheckUser' => 'Test'))); //создаем экзепляр класса SoapClient
                  // при этом запришиваем wsdl файл с описанием методов и их параметров
                  // так же передаем на сервер массив параметров
    
$client -> CheckUser ($parameters); //запрашиваем один из методов SOAP.
                  //Он должен быть описан в wsdl файле
                  //Список и тип получаемых параметров так же должен быть там описан
                  //и тип возвращаемого результата, кстати, тоже

  Ответить  
 
 автор: AlMag   (22.08.2008 в 10:15)   письмо автору
 
   для: Loki   (21.08.2008 в 19:48)
 

тоесть, если у меня wsdl файл имеет, например, следующий вид

<message name="getTermRequest">
   <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
   <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
      <input message="getTermRequest"/>
      <output message="getTermResponse"/>
  </operation>
</portType>


то запрос будет таким

<?
$parameters 
= new getTermRequest;
$parameters -> term $term;
$client = new SoapClient ("https://www.somewebsite.com/Service.asmx?wsdl", array('glossaryTerms' => array('getTerm' => 'getTermRequest')));
$client -> getTermRequest ($parameters);
?>

?

  Ответить  
 
 автор: Loki   (22.08.2008 в 11:39)   письмо автору
 
   для: AlMag   (22.08.2008 в 10:15)
 

Скорее таким:
<?
$client 
= new SoapClient ("https://www.somewebsite.com/Service.asmx?wsdl");
$client -> getTerm (array($term)); 


Второй параметр при создании SoapClient является необязательным и используется в случае если это требует удаленный сервер (например, авторизация) или работа ведется в nonwsdl mode (даже не разбирался что это).
методу _call я обычно передаю массив. К сожалению, он требует строго соблюдать порядок следования аргументов. Передавать объект - не пробовал. Возможно, в этом случае будет и удобнее.

  Ответить  
 
 автор: AlMag   (23.08.2008 в 18:00)   письмо автору
 
   для: Loki   (22.08.2008 в 11:39)
 

Понял! Спасибо!

P. S. осталось только понять как автоматизировать создание wsdl файла сервером soap

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования