web-dev-qa-db-ja.com

WCFサービスでJSONを使用できるようにする

Wcfサービスを作成しました。 Webサービスとして追加することにより、単に.netで使用している場合、それは正常に機能しています。しかし、iPhoneアプリでJSON呼び出しとして使用できるようにしたいと考えています。テストでは、JSONを使用して.netで使用しましたが、機能しません。

私はこの種の質問が以前に尋ねられたことを知っています、私はこのための解決策を私のために探しました。

私の構成:

<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>

インターフェースコード:

[ServiceContract]
public interface IGolfPyramidService
{



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

}

Myservice.csコード:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService : IMyService
{        
    public string Test()
    {
        return "success";
    }
}

次のようなURL形式を使用してメソッドを呼び出すことができるようにしたい: http://example.com/MyService.svc/test

9
Finisher001

あなたが初心者であれば、これは、IOSおよびAndroidで使用できるjsonおよびxml対応のWebサービスの作成をガイドします。
http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide

11
Arshad

なぜpostメソッドを使用して単純な文字列値を取得するのですか?通常は機能するはずのこの例を試してください。

構成

  <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

namespace WcfService1
{
[ServiceContract]
public interface IMyService
{
    [WebGet(UriTemplate = "Test",
        ResponseFormat = WebMessageFormat.Json
    )]
    [OperationContract]
    string Test();
}
}

MyService.svc.cs

namespace WcfService1
{
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService : IMyService
{
    public string Test()
    {
        return "Test";
    }
}
}
7
binard