2016-06-18 15 views
1

私のプロジェクトでは、動的Json文字列をWCF RestサービスWeb getに渡す必要があります。が見つかりません404 WCF Restingサービス(WebGet)にアクセス中urlセグメントがjson文字列の場合

以下のようにいくつかの文字列を渡すと、すべて正常に動作します。

http://localhost:58014/MyService.svc/api/queries/somestirng

が、URLのセグメントが見つからないエラーが発生したとして、私は、JSON文字列を渡します。

{ "キー": "UserHomePageInfoQuery"、 "メッセージ": "{\" ユーザー名\ ":\" usr83 \ "}"}

http://localhost:58014/MyService.svc/api/queries/257b%2522Key%2522%253a%2522UserHomePageInfoQuery%2522%252c%2522Message%2522%253a%2522%257b%255c%2522UserName%255c%2522%253a%255c%2522usr83%255c%2522%257d%2522%257d

ここでは私のサービス運用契約の定義

です
[OperationContract] 
    [WebGet(UriTemplate = "api/queries/{queryString}",       
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json)] 
    Response Query(string queryString); 

私はPOSTを使用することができます知っているが、サービスへのすべての要求は、クエリ

である私はPOST

によってコマンドの別のサービスを持っています 私は "URIの残りの部分を" 意味{}のqueryStringパラメータにワイルドカード(*)を使用
[OperationContract] 
     [WebInvoke(UriTemplate = "api/commands/", 
      Method = "POST",    
      RequestFormat = WebMessageFormat.Json, 
      BodyStyle = WebMessageBodyStyle.Bare, 
      ResponseFormat = WebMessageFormat.Json)]  
     Response Execute(Request request) 
+0

それは必ずしもGETする必要がありますか?あなたは単にJSON文字列をPOSTすることができます。 – khlr

+0

はい、このservisをクエリ操作だけが通過しているためです。私はポストとしてコマンドのための別のサービスを持っています – ozman

+0

'WebGet'を' WebInvoke'に変更することはできませんか?または、このメソッドはGETだけを受け入れる必要があるという要件ですか? – khlr

答えて

関連する問題