5

RestSharp で次のようにリクエストすると、次のようになります。

var response = client.Execute<bool>(request);

次のエラーが表示されます。

"Unable to cast object of type 'System.Boolean' to type 'System.Collections.Generic.IDictionary`2[System.String,System.Object]'."

これは、Fiddler による完全な HTTP 応答です。

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 01 Apr 2013 15:09:14 GMT
Content-Length: 5

false

すべてが応答でコーシャであるように見えるので、何が得られますか?

また、オブジェクトの代わりに単純な値を返すことによって WebAPI コントローラーで愚かなことをしており、それで問題が解決する場合は、遠慮なく提案してください。

4

1 に答える 1

9

RestSharp は、有効な json のみを逆シリアル化します。falseは有効な json ではありません (RFC-4627 によると)。サーバーは、少なくとも次のようなものを返す必要があります。

{ "foo": false }

また、デシリアライズするには、次のようなクラスが必要です。

public class BooleanResponse
{
    public bool Foo { get; set; }
}
于 2013-04-01T18:29:44.560 に答える