2012-02-03 8 views
2

RestSharp(Windows phone 7.1クライアント)でPOSTリクエストを行っています。リクエストボディの文字列をサービスに送りました。サービスが正常に呼び出され、適切な値(整数)を返すように見えますが、応答オブジェクトはnullです:RestSharpを使用したPOSTリクエストでRestResponseがヌルです

client.ExecuteAsync<T>(request, (response) => { 
    data = response.Data; // response is null in debugger 
}); 

なぜそうは理解できません。

+0

実際のリクエストが行われていて応答が返ってきたことを確認するために、実際のリクエスト(Fiddlerなどを使用)を監視しましたか? –

答えて

0

<T>は、その呼び出しに有効な値ではありません。あなたが一般的な方法でそれをラップしていない限り、それがそこに構築されるかどうかはわかりません。

また、レスポンスはプレーンテキストとして戻ってきますか?返されるContent-Typeは何ですか?おそらく、汎用パラメータなしでExecuteAsync(request, callback)を使用し、応答本体の文字列であるresponse.Contentのデータを取得する必要があります。 response.Dataは、デシリアライズする型を指定する汎用メソッドのオーバーロードを使用すると、自動的に非直列化XMLまたはJSON(またはカスタム)応答用です。

+0

RestSharpにWP用のExecuteメソッドはありません。しかし、私はそれをのないclient.ExecuteAsyncに変更しました。応答オブジェクトはまだnullで、私はそのプロパティにアクセスできません。 Webサービスは、応答オブジェクトから取得する必要がある整数値を返します(おそらく、あなたが示唆したようにContentプロパティを介して)。 – Aliens

+0

申し訳ありませんが間違った方法を参照して、私の答えを更新しました。 –

+0

レスポンスオブジェクトがnullの場合、ErrorExceptionに何かがありますか? –

0

これは、RestSharp非同期呼び出しの進行中の問題であると思われます.HTTP転送エラーの場合、ErrorExceptionオブジェクトは役に立たない(nullを返します)。 StatusCodeプロパティがHttpStatusCode.OK以外のものと一緒に返される場合は、StatusCodeプロパティを確認します。 StatusDescriptionは、サーバー応答ペイロードからの完全なステータスメッセージと一致しないため、非常に有用ではありません。

関連する問題