Je suis en train d'écrire une application Silverlight dans laquelle je veux appeler le service web PHP écrit en utilisant NuSOAP. voici le WSDL de webserviceProblème de communication avec nuSAP Silverlight et PHP
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:currencywebservice" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:currencywebservice">
- <types>
- <xsd:schema targetNamespace="urn:currencywebservice">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>
<message name="GetAllCurrenciesRequest" />
- <message name="GetAllCurrenciesResponse">
<part name="return" type="xsd:string" />
</message>
- <portType name="currencywebservicePortType">
- <operation name="GetAllCurrencies">
<documentation>Get all currencies available</documentation>
<input message="tns:GetAllCurrenciesRequest" />
<output message="tns:GetAllCurrenciesResponse" />
</operation>
</portType>
- <binding name="currencywebserviceBinding" type="tns:currencywebservicePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="GetAllCurrencies">
<soap:operation soapAction="urn:currencywebservice#GetAllCurrencies" style="rpc" />
- <input>
<soap:body use="literal" namespace="urn:currencywebservice" />
</input>
- <output>
<soap:body use="literal" namespace="urn:currencywebservice" />
</output>
</operation>
</binding>
- <service name="currencywebservice">
- <port name="currencywebservicePort" binding="tns:currencywebserviceBinding">
<soap:address location="http://localhost/extras/currency/currencyservice.php" />
</port>
</service>
</definitions>
Quand j'appelle le webservice donne une exception
The content type text/html of response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly
Le côté php de service est
<?php
// Pull in the NuSOAP code
require_once('../../lib/tools/nusoap/nusoap.php');
$ns = "urn:currencywebservice";
// Create the server instance
$server = new soap_server();
// Initialize WSDL support
$server->configureWSDL('currencywebservice', $ns);
$server->xml_encoding = "utf-8";
$server->soap_defencoding = "utf-8";
$server->wsdl->schemaTargetNamespace = $ns;
$server->register('GetAllCurrencies',
array(),
array('return' => 'xsd:string'),
$ns,
$ns."#GetAllCurrencies",
'rpc',
'literal',
'Get all currencies available');
// Define the method as a PHP function
function GetAllCurrencies() {
return "test return";
}
// Use the request to (try to) invoke the service
header('Content-Type: text/xml; charset=utf8');
$server->service($HTTP_RAW_POST_DATA);
?>
S'il vous plaît aidez-moi quel est ce problème ?
Merci pour votre aide jones! Je vais essayer si ça marche. –
Maintenant, j'obtiens cette erreur "Version de message non reconnue." une idée? –
Mettez à jour votre question initiale avec les mises à jour de code que vous avez faites. –