首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用WCF服务以与JSON一起使用

启用WCF服务以与JSON一起使用
EN

Stack Overflow用户
提问于 2013-04-22 18:30:41
回答 2查看 68K关注 0票数 10

我已经创建了一个wcf服务。当我在.net中简单地通过添加when服务来使用时,它工作得很好。但我想让它能够用于iPhone应用程序作为JSON调用。为了测试,我在.net中使用了JSON,但它不起作用。

我知道以前有人问过这样的问题,我一直在寻找这个无法为我找到答案的问题。

我的配置:

代码语言:javascript
复制
<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="servicebehavior">
      <serviceMetadata httpsGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="endpointBehavior">
      <enableWebScript />
      <webHttp defaultBodyStyle="Wrapped" defaultOutgoingResponseFormat="Json" />
    </behavior>
  </endpointBehaviors>

</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
  <service name="MyService" behaviorConfiguration="servicebehavior">
    <endpoint address=""
              behaviorConfiguration="endpointBehavior"
              binding="webHttpBinding"
              contract="IMyService" />
  </service>
</services>

接口代码:

代码语言:javascript
复制
[ServiceContract]
public interface IGolfPyramidService
{



    [WebInvoke(UriTemplate = "/Test", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
    [OperationContract]
    string Test();

}

Myservice.cs代码:

代码语言:javascript
复制
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService : IMyService
{        
    public string Test()
    {
        return "success";
    }
}

我希望能够使用url格式调用该方法,例如:http://example.com/MyService.svc/test

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-22 18:36:28

如果你是初学者,这将指导你创建支持json和xml的web服务,可以在IOS和android上使用。

http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide

票数 11
EN

Stack Overflow用户

发布于 2013-04-22 19:17:16

为什么要使用post方法来获取简单的字符串值?尝试这个示例,它应该正常工作。

配置

代码语言:javascript
复制
  <system.serviceModel>
<services>
  <service behaviorConfiguration="RestServiceBehavior" name="WcfService1.MyService">
    <endpoint address="" behaviorConfiguration="web" binding="webHttpBinding" bindingConfiguration="webHttpBindingWithJSONP" contract="WcfService1.IMyService" />
  </service>
</services>
<bindings>
  <webHttpBinding>
    <binding name="webHttpBindingWithJSONP" />
  </webHttpBinding>
</bindings>
<behaviors>
  <endpointBehaviors>
    <behavior name="web">
      <webHttp />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="RestServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

IMyService.cs

代码语言:javascript
复制
namespace WcfService1
{
[ServiceContract]
public interface IMyService
{
    [WebGet(UriTemplate = "Test",
        ResponseFormat = WebMessageFormat.Json
    )]
    [OperationContract]
    string Test();
}
}

MyService.svc.cs

代码语言:javascript
复制
namespace WcfService1
{
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService : IMyService
{
    public string Test()
    {
        return "Test";
    }
}
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16144873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档