当与我们的REST web服务进行通信时,将返回一个状态码为304的http响应,以指示所请求的资源未发生更改。然而,我们的WP7应用程序使用HttpWebRequest类,手机在这种类型的响应被成功读取之前需要2分钟。HttpWebRequest定时响应状态码304
HttpWebRequest request = HttpWebRequest.Create("path/to/unchanged/resource") as HttpWebRequest;
request.Method = "GET";
request.BeginGetResponse(
new AsyncCallback(
(aysncResult) => {
// response is read correctly here... 120 seconds later
}), null);
我可以看到,web服务与304个没有主体数据立即响应,该请求本身不定时出和我们的应用程序能够成功地处理其他响应码[404,201等]。它可能是Silverlight浏览器“缓存”问题吗?
任何人都可以确认他们以前见过这个,或者对这个问题有任何想法吗?
干杯, 阿拉斯代尔。
==更多信息==
由于WP7 restricting某些request headers因此,我们使用自定义[IF-Modified-Since的]标题为我们所有的资源请求。这个自定义标题[X-If-Modified-Since]被webservice前面的防火墙识别并修改回标准头。我不确定这是否与上述问题有关。