2011-12-23 20 views
0

私はこのようなポストで私の方法を作った。WCFサービス、RESTfulな

[OperationContract] 
[WebInvoke(Method = "POST", 
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json, 
      BodyStyle = WebMessageBodyStyle.Bare)] 
List<Human> GetHuman(UserEnteredName humanName); 

をUserEnteredNameクラスはただ一つの特性がある - 文字列を。

これは機能します。しかし、私はポストではなく、それを得るためにそれを作る必要があります。

私はこれを試してみました:

[WebInvoke(Method= "GET", UriTemplate = "GetHuman?username={John}", 
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json)] 

しかし、それは動作しません。私は何を変更する必要がありますか?

+1

エラーを投稿します。「動作しません」とはどういう意味ですか? – andreapier

+0

@andreapierエラーは500内部サーバーエラーです。 –

+0

多分あなたは基本のものではないドメインからいくつかのjsonを取得しようとしていますか?つまり、基本ドメインがwww.mydomain.comで、inner.mydomain.comからajax呼び出しを行っていますか? – andreapier

答えて

1

あなたUriTemplateによると、あなたの方法は、私はあなたが誤ってあなたのUriTemplateで可能なパラメータ値を入れている疑いがある

Human GetHuman(string John) 

のようなものを見なければならないでしょう。 GETのために、あなたは少しクリーナーでWebGetAttributeを、使用することができ、また

[WebInvoke(Method= "GET", UriTemplate = "GetHuman?username={userName}", 
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json)] 
Human GetHuman(string userName) 

のようなものを試してみてください。


私はstringパラメータを取り、メソッド本体にUserEnteredNameインスタンスを構築するためにあなたの方法を変更します。 TypeConverterAttributeを使用している場合は、UserEnteredNameタイプをパラメータとして使用することは可能ですが、これを実行したことがないので、簡単かどうかはわかりません。 WCF Web HTTP Programming Model Overview、具体的にはUriTemplateクエリ文字列パラメータとURLセクションを参照してください。

+0

私は試してみましたが、うまくいきませんでした 私の方法は次のようになります: リスト GetHuman(UserEnteredName humanName); UserEnteredNameは文字列プロパティuserNameを含むクラスです –

+0

@スレーブ、私の編集を参照してください。 –

+0

私はあなたがそれをコンパイルすることができるのに驚いています...どのようにUserEnteredNameの代わりに文字列を渡すことができますか?たぶんあなたは私たちのための簡単な例を書いたでしょうか?または、入力パラメータとして文字列を取るGetHumanメソッドのラッパーを試すことができます – andreapier

関連する問題