當與我們的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前面的防火牆識別並修改回標準頭。我不確定這是否與上述問題有關。