Gå til innhold

Fleire parametere for ein SOAP request? Korleis?


Anbefalte innlegg

Eg har ein client som spør etter ein verdi frå ein webservice

 

<?php 

$client = new SoapClient("wsdl/wdata.wsdl");
echo $client->getData("name", "tigerolav");

?>

 

WSDL'en ser sånn ut:

<?xml version ='1.0' encoding ='UTF-8' ?>
<definitions name='WeatherData'
 	targetNamespace='http://example.org/WeatherData'
 	xmlns:tns=' [url="http://example.org/WeatherData'"]http://example.org/WeatherData'[/url]
 	xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
 	xmlns:xsd='http://www.w3.org/2001/XMLSchema'
 	xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
 	xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
 	xmlns='http://schemas.xmlsoap.org/wsdl/'>

<message name='getDataRequest'>
 		<part name='symbol' type='xsd:string'/>
	<part name='olav' type='xsd:string'/>
</message>
<message name='getDataResponse'>
 		<part name='Result' type='xsd:string'/>
</message>
<message name="NoValueFoundOut">
	<part name="failure" type='xsd:string'/>
</message>

<portType name='WeatherDataPortType'>
 		<operation name='getData'>
   			<input message='tns:getDataRequest'/>
   			<output message='tns:getDataResponse'/>
		<fault name="getDataFailure" message="tns:NoValueFoundOut"/>
 		</operation>
</portType>

<binding name='WeatherDataBinding' type='tns:WeatherDataPortType'>
 		<soap:binding style='rpc'
   			transport='http://schemas.xmlsoap.org/soap/http'/>
 		<operation name='getData'>
   			<soap:operation soapAction='urn:xmethods-delayed-quotes#getData'/>
   				<input>
     					<soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
       					encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
   				</input>
   				<output>
     					<soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
       					encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
   				</output>
 		</operation>
</binding>

<service name='WeatherDataService'>
 		<port name='WeatherDataPort' binding='WeatherDataBinding'>
   			<soap:address location='http://localhost/web_weather/server.php'/>
 		</port>
</service>
</definitions>

 

Og serveren sånn ut:

<?php

function getData($symbol, $olav) 
{	
$quotes = array(
	"name" => $olav);
return $quotes[$symbol];
}

// disabling WSDL cache
ini_set("soap.wsdl_cache_enabled", "0"); 
$server = new SoapServer("wsdl/wdata.wsdl");
$server-> addFunction("getData");
$server-> handle();
?>

 

Men den einaste parameteren som visstnok når fram til serveren er $symbol? Kva er det som galt?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...