0

私は以下のようなWebサービスを持っています、

  [ServiceContract]
        public interface IRestServiceImpl
        {             
            [OperationContract]
            [WebInvoke(Method = "POST",
                ResponseFormat = WebMessageFormat.Json,
                BodyStyle = WebMessageBodyStyle.Wrapped,
                UriTemplate = "json/{jsondata}")]
            void JSONData(string jsondata);       
        }


    public class RestServiceImpl : IRestServiceImpl
    {
        List<ClsTripAdvisorData> lst = new List<ClsTripAdvisorData>();
        ClsTripAdvisorData _ClsTripAdvisorData = null;

        #region IRestServiceImpl Members       
        public void JSONData(string jsondata)
        {
            string[] data = jsondata.Split('&');
        }
}

JSON入力を期待しています。以下のようにJSON文字列をクエリ文字列リクエストとして渡すことで、ポスターでこのサービスをテストしていますが、

http://localhost:1162/RestServiceImpl.svc/json/api_version=4 &hotels=[{"ta_id":97497,"partner_id":"229547","partner_url":"http://partner.com/deeplink/to/229547"},{"ta_id":97832,"partner_id":"id34234","partner_url":"http://partner.com/deeplink/to/id34234"}] &start_date=2013-07-01 &end_date=2013-07-03 &num_adults=2 &num_rooms=1 &lang=en_US &currency=USD &user_country=US &device_type=d &query_key=6167a22d1f87d2028bf60a8e5e27afa7_191_1360299600000_2_2

ここで私の文字列パラメータはapi_version=4 &hotels=[{"ta_id":97497,"partner_id":"229547","partner_url":"http://partner.com/deeplink/to/229547"},{"ta_id":97832,"partner_id":"id34234","partner_url":"http://partner.com/deeplink/to/id34234"}] &start_date=2013-07-01 &end_date=2013-07-03 &num_adults=2 &num_rooms=1 &lang=en_US &currency=USD &user_country=US &device_type=d &query_key=6167a22d1f87d2028bf60a8e5e27afa7_191_1360299600000_2_2

デバッグ中にサービス メソッドのブレーク ポイントに達していません。

同時に、以下のように次の JSON に対して機能します。

http://localhost:1162/RestServiceImpl.svc/json/asd

JSON文字列の入力を取らないサービスメソッド、

この文字列をWebサービスの本体部分として送信したいだけですが、wcf restサービスを使用してこのjson文字列を送受信する方法がわかりません

4

1 に答える 1

1

メソッドに次の装飾を追加します

<OperationContract()> _
    <WebGet(UriTemplate:="YourCoolFunction?inpt={inpt}", BodyStyle:=WebMessageBodyStyle.Wrapped,
            RequestFormat:=WebMessageFormat.Json, ResponseFormat:=WebMessageFormat.Xml)> _
    Public Function YourCoolFunction(inpt As String) As String

.svc ファイルで、Factory="System.ServiceModel.Activation.WebServiceHostFactory" を追加します。

web.config に追加

<defaultDocument>
  <files>
    <add value="YourFile.svc"/>
  </files>
</defaultDocument>
于 2013-10-11T13:51:55.260 に答える