如何使用 c# 为服务器端编写 JSON 启用 JSON 的 WCF 服务 asp.net
本文关键字:JSON 启用 WCF 服务 net asp 何使用 服务器端 | 更新日期: 2023-09-27 17:56:18
我有一个安卓和苹果手机的客户端...我需要使用 c# 编写服务器端启用 JSON 的 WCF 服务。如何创建启用 JSON 的 WCF 服务?
启用JSON的东西与标准WCF没有太大区别。我猜你想要一个 REST API(我的 WCF 服务为 android 工作 REST),这意味着你的调用是 GET 请求而不是 HTTP 帖子,使用 URL 作为传递参数的一种方式:
http://example.rest.com/myservice/categories/en/videos
其中"en"和"video"是您要在URL上使用的参数。
WCF 在接口上工作,接口定义服务协定。对于 REST 服务,您可以指定 JSON/URL 格式,如下所示:
[ServiceContract()] // Required: this is a WCF endpoint
public interface IMyService
{
[OperationContract()] // Required so the method actually is included
[WebGet(
ResponseFormat = WebMessageFormat.Json, // Return results as JSON
UriTemplate = "/categories/{language}/{category}")]
CategoryResponse Find(string language, string category);
}
URI 模板类别构成了您的 URI 结构,表示当有人访问您的服务时,用"类别"然后用斜杠分隔的两个值,它将调用此 Find 方法,将第一个参数作为语言参数传递,类别参数将等于第二个:
例如:http://yourdomain/yourservice.svc/categories/it/bob
将调用此方法,将"it"作为语言传递,将"bob"作为类别传递。
返回对象只是一个标准的数据协定,如果你想控制格式,只需使用 DataContract + DataMember 属性(具有命名参数,如名称、命名空间、顺序等)。
然后最后一部分只是正确配置您的服务,在这种情况下
a) 定义 webHttp 服务行为:
<behaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
b) 使用 webHttpBinding 定义您的端点(并使用上面定义的端点行为:请参阅我们设置 behaviorConfiguration = "web"):
<services>
<service behaviorConfiguration="standard"
name="Your.Implementing.ClassThatImplementsIMyService">
<endpoint address="" behaviorConfiguration="web" binding="webHttpBinding"
contract="Namespace.To.IMyService" />
</service>
</services>
基本上就是这样...
在这里找到
http://dotnetslackers.com/articles/ajax/JSON-EnabledWCFServicesInASPNET35.aspx
我发现这在处理类似项目时很有帮助 - http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/