NuSOAP을 사용하여 작성한 php webservice를 호출하려는 실버 라이트 응용 프로그램을 작성하고 있습니다. 여기에 웹 서비스의 WSDL은Silverlight 및 PHP nuSOAP 통신 문제
<?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>
나는 서비스의 PHP 측이
<?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);
?>
이 문제가 무엇인지 저를 도와주세요입니다
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
예외를 제공하는 웹 서비스 호출 할 때 ?
도움 주셔서 감사합니다. 작동한다면 시도해 보겠습니다. –
이제 "인식 할 수없는 메시지 버전"이라는 오류 메시지가 나타납니다. 어떤 생각? –
작성한 모든 코드 업데이트로 원래 질문을 업데이트하십시오. –