3

WP7 アプリケーションに RestSharp を正常に実装しましたが、1 つの問題が残っています。

サーバーからリソースをロードすると (たとえば、http://localhost:8080/carsでの GET 要求)、(この場合は) 車のコレクションが初めて正常に返されます。

同じリクエストを 2 回目に発行すると、その間にリソースが変更された場合でも、常に最初と同じ結果が得られます。私のサーバーを見ると、2回目はリクエストがまったく発行されていません。

RestSharp にはキャッシュ メカニズムが実装されていると思いますが、キャッシュ結果を無効にする方法がわかりません。

RestSharp for Windows Phone のキャッシュ結果を手動で無効にする方法はありますか? (または、ライブラリがサーバーから結果を取得するように強制する方法)

4

2 に答える 2

3

サーバーが返す応答にヘッダーを設定することで、リソースのキャッシュを制御できます。リソースをキャッシュしたくない場合は、cache-control ヘッダーを no-cache に設定します。
リソースの有効期間を指定するのはサーバーの仕事であり、クライアントはその情報を尊重するために最善を尽くす必要があります。

キャッシュ内のエントリを本当に削除したい場合は、WinINet APIを使用する必要があります

于 2011-05-19T11:21:55.347 に答える
2

キャッシュを回避するための簡単なハックとして、クエリ文字列の最後に一意の値を追加できます。現在の日時(必要に応じて秒とミリ秒を含む)またはGUIDが適しています。

例えば。

var uri = "http://example.com/myrequest?rand=" + DateTime.Now().ToString();
于 2011-05-19T12:47:51.497 に答える