1

Etag は、HTTP 仕様で明確に定義されています。詳細については、http://en.wikipedia.org/wiki/HTTP_ETagをご覧ください。

最近、ASP.Net Web API で RestSharp クライアント ライブラリを使用しようとしましたが、キャッシングに問題がありました。サーバー側から Etag (つまり、「ETag」:「12345」を応答ヘッダーとして) をクライアントに送信しています。 RestResponse オブジェクトの応答ヘッダーの同じ Etag, これまでのところ満足.

次のリクエストでは、同じRestSharpクライアントを使用して、RestSharpが同じリソースのサーバーへの後続のリクエストで「If-None-Match」ヘッダー(リクエスト・ヘッダーとして「If-None-Match」:「12345」)を渡すことを期待しています。残念ながら、RestSharp を自動的に実行するように設定する方法が見つかりません。

注: C# の WebClient クラスは生の操作でその仕事をしますが、RestSharp はしません。

私が欲しいのは、誰かがそれを行う方法を確認することです, または単に私がゴミだと言ってください:P

4

2 に答える 2

1

ソースに表示されている内容に基づいて、そのリソースの次のリクエストでそのヘッダーを自分で追加する必要があります。

于 2013-03-12T01:22:47.983 に答える
1

RestSharp はHttpWebRequest舞台裏で使用します。クライアントの初期化中にこのコード行を実行すると、If-None-Matchヘッダーが自動的に取得され始めました。

HttpWebRequest.DefaultCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);

これは、HttpWebRequestにデフォルトのキャッシュ レベルを使用するように指示します (この行がないと、キャッシュ レベルが に設定されているように見えますHttpRequestCacheLevel.BypassCache)。

于 2015-04-17T19:12:54.373 に答える