记录
我基本上是一个前端(android)开发人员,从来没有必要创建一个Web服务 相反,我在消费端。 现在这个WCF业务势不可挡,我认为学习曲线非常复杂。
任务
我需要创建一个简单的SOAP服务,hello world暂时需要输入XML,但是返回JSON。
我不确定为什么我们在互联网上没有类似的问题,有点让我想知道它是否根本不可能?
这是我到目前为止所拥有的。
当前进度
我的合约
[ServiceContract]
public interface IHelloWorldService
{
[OperationContract]
String GetMessage(String name);
}
我的合约Impl
public string GetMessage(string name)
{
return "Hello World from " + name + "!";
}
我的服务配置(在Web.Config中。我已在asp.net网站上托管此服务)
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp defaultOutgoingResponseFormat="Json" />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="MyWcfServices.HelloWorldService" behaviorConfiguration="MyServiceTypeBehaviors">
<endpoint address="" binding="wsHttpBinding" behaviorConfiguration="WebBehavior" contract="MyWcfServices.IHelloWorldService"/>
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex"/>
</service>
</services>
</system.serviceModel>
问题
答案 0 :(得分:6)
SOAP完全依赖于XML来提供消息传递服务,因此如果您确实需要/需要返回JSON,那么您需要将它包装在SOAP XML主体中的CDATA中。但是,与SOAP不同,REST不必使用XML来提供响应,因此您可以输出其他格式的数据,例如JSON。
http://blog.smartbear.com/apis/understanding-soap-and-rest-basics/
您可能需要考虑使用WCF
来提供REST
- ful服务,而不是基于SOAP
的服务。