【发布时间】:2012-03-25 09:30:59
【问题描述】:
WebClient.DownloadStringAsync 会缓存服务器响应。 一旦从服务器收到响应后,即使没有互联网连接,我也会收到响应!
WebClient 缓存是否足够智能,可以根据服务器响应确定缓存多长时间? 还是它有问题,我应该禁用缓存。
背景信息:
网址:http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
提琴手踪迹:
GET /stats/eurofxref/eurofxref-daily.xml HTTP/1.1 接受:/ 参考:file:///Applications/Install/4D0DF1F7-1481-45CA-86BE-C14FF5CCD955/Install/ 接受编码:身份 用户代理:NativeHost 主办方:www.ecb.europa.eu 连接:保持活动状态
HTTP/1.1 200 正常 日期:2012 年 3 月 25 日星期日 08:54:40 GMT 服务器:Apache/2.2.3 (Linux/SUSE) 最后修改时间:格林威治标准时间 2012 年 3 月 23 日星期五 13:31:39 ETag:“19d4e5-6a9-4bbe90b5904c0” 接受范围:字节 内容长度:1705 保活:超时=3,最大值=200 连接:保持活动 内容类型:文本/xml 设置 Cookie:BIGipServerPOOL.www.ecb.europa.eu_HTTP=2684883628.16415.0000;路径=/ ...
通过标头禁用缓存不起作用:
.Headers("缓存控制") = "无缓存" .Headers("HttpRequestHeader.IfModifiedSince") = DateTime.UtcNow.ToString()
通过附加 uniqa 参数禁用缓存有效:
"http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml" & "?MakeRequestUnique=" & Environment.TickCount
【问题讨论】:
-
不是重复的:我想知道“如果”我应该禁用缓存而不是如何禁用缓存。我不清楚电话 WebClient 电话使用什么算法进行缓存。