使用XML响应创建Web服务的最简单方法是什么?
答案 0 :(得分:0)
使用XML响应创建Web服务的最简单方法是,不要开玩笑,将XML文件放在标准Web服务器上并将其作为静态文件提供。
我猜你想要比这更灵活的东西,但是......
您有多种选择,而WCF处于更复杂(但更灵活)的频谱端。第一个问题:你的客户是什么?你在写吗?您想编写可供其他客户使用的Web服务吗?
您是否希望使用REST - 即普通旧XML(普通旧XML)(POX)? XML-RPC? SOAP?
WCF支持所有这些,因此这实际上取决于您要支持的客户端。
更新:如果您想支持XML-RPC,那么您可能会比使用this implementation of XML-RPC for WCF by Clemens Vasters更糟糕。我问了一个关于here的问题。
答案 1 :(得分:0)
本文中几乎没有可用的链接。希望他们能帮到你 -
http://social.msdn.microsoft.com/Forums/en/wcf/thread/b082d6de-d1e9-4e51-a0ab-0fe98d7003e6
答案 2 :(得分:0)
在你的情况下,我肯定会使用WCF和REST绑定(webHttpBinding
) - 我不同意它的学习很复杂。
查看这些资源以开始使用:
答案 3 :(得分:0)
我刚刚开了一个网络服务。
PHP服务器端代码:
<?php // instantiate SOAP server
function sendXmlMsg($msg){
return $msg;
}
ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSD
$server = new SoapServer("mark.wsdl");
// Register exposed method
$server->addFunction('sendXmlMsg'); // generate captcha
//$server->addFunction('check_captcha'); // check captcha ID
$server->handle(); //?>
我的WSDL文件是
<?xml version ='1.0' encoding ='UTF-8' ?>
<definitions name='Msg91'
targetNamespace='http://localhost/webtest/test.wsdl'
xmlns:tns='http://localhost/webtest/test.wsdl'
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='sendXmlMsgRequest'>
<part name='msg' type='xsd:string'/>
</message>
<message name='sendXmlMsgResponse'>
<part name='Result' type='xsd:string'/>
</message>
<portType name='Msg91PortType'>
<operation name='sendXmlMsg'>
<input message='tns:sendXmlMsgRequest'/>
<output message='tns:sendXmlMsgResponse'/>
</operation>
</portType>
<binding name='Msg91Binding' type='tns:Msg91PortType'>
<soap:binding style='rpc'
transport='http://schemas.xmlsoap.org/soap/http'/>
<operation name='sendXmlMsg'>
<soap:operation soapAction='urn:xmethods-delayed-quotes#sendXmlMsg'/>
<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='Msg91Service'>
<port name='Msg91Port' binding='tns:Msg91Binding'>
<soap:address location='http://localhost/webtest/test.php'/>
</port>
</service>
</definitions>
客户端PHP文件:
<?php
$client = new SoapClient("mark.wsdl");
$params= array('HiT');
echo $client->__soapCall( 'sendXmlMsg', $params );
?>
我希望这会对你有所帮助。
答案 4 :(得分:0)
创建WCF服务实际上非常简单。网上有很多教程。
至于返回xml,有几种方法。 您可以通过将xml转换为服务中的字符串然后在客户端中转换回来,使用“旧学校”SOAP Web服务执行此操作。它不漂亮,但它有效。
另一种选择,以及我的方式,就是使用WCF并创建一个映射xml的数据协定。
您可以使用数据合同做一些相当不错的事情,例如传递数据集和自定义类型,但这有时会限制您可以使用的绑定类型。