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.
[Info]
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