Please disable Adblockers and enable JavaScript for domain CEWebS.cs.univie.ac.at! We have NO ADS, but they may interfere with some of our course material.

SOAP

weather.wsdl 
 
<definitions
  Name="WeatherTime"
  targetNamepsace="urn:marlene"
  xmlns:marlene="http://facebook/marlene.schwarz"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  xmlns="http://schemas.xmlsoap.org/wsdl/">
 
  <types>
    <xsd:schema targetNamespace="urn:marlene">
      <xsd:complexType name="returnType">
        <xsd:all>
          <xsd:element name='station' maxoccurs='unbounded'>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="anlage" type="xsd:string"/>
                <xsd:element name="temperatur" type="xsd:string"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:all>
      </xsd:complexType>
    </xsd:schema>
  </types>
 
  <message name="typeRequest">
    <part name="type" type="xsd:string"/>
    <part name="ort" type="xsd:string"/>
  </message>
  <message name="getWeatherResponse">
    <part name="franz" type="marlene:returnType"/>
  </message>
 
  <portType name="WeatherTimePort">
    <operation name="getWeather">
      <input message="marlene:typeRequest"/>
      <output message="marlene:getWeatherResponse"/>
    </operation>
  </portType>
 
  <binding name="WeatherTimeBinding" type="marlene:WeatherTimePort">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getWeather">
      <soap:operation soapAction="urn:WeatherTime#getWeather"/>
      <input><soap:body use="literal" namespace="urn:marlene"/></input>
      <output><soap:body use="literal" namespace="urn:marlene"/></output>
    </operation>
  </binding>
 
  <service name='WeatherTime'>
    <port name="WeatherTimePort" binding="marlene:WeatherTimeBinding">
      <soap:address location="http://wwwlab.cs.univie.ac.at/~mangler/soap/server.php"/>
    </port>
  </service>
 
</definitions>
 
server.php 
 
<?php
  class Nina {
    function getWeather($type,$ort) {
      $stations = new StdClass;
      $station1 = new StdClass;
      $station2 = new StdClass;
 
      $station1->anlage = 'Hohe Warte';
      $station1->temperatur= '12 Grad';
 
      $station2->anlage = 'Pfaender';
      $station2->temperatur= '50 Grad';
 
      $stations->station = array($station1,$station2);
 
      return $stations;
    }
  }
 
  if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $test = new Nina;
    header('content-type: text/plain');
    print_r($test->getWeather('a','b'));
  }
 
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    ini_set("soap.wsdl_cache_enabled","0");
    $server = new SoapServer('weather.wsdl');
    $server->setClass('Nina');
    $server->handle();
    exit;
  }
?>
 
client.php 
 
<?php
  ini_set("soap.wsdl_cache_enabled","0");
  $client = new SoapClient('blubb.wsdl',array('trace'=>1));
  $result = $client->getWeather('c','d');
 
  header('content-type: text/plain');
 
   print_r($result);
 
  $doc = new DOMDocument('1.0');
  $doc->formatOutput = true;
  $doc->loadXML($client->__getLastRequest());
  print $doc->saveXML();
 
  $doc = new DOMDocument('1.0');
  $doc->formatOutput = true;
  $doc->loadXML($client->__getLastResponse());
  print $doc->saveXML();
?>
Letzte Änderung: 03.05.2017, 23:48 | 454 Worte