2011-01-06 4 views
2

Из того, что я понимаю, класс HttpWebRequest всегда кэширует загруженные данные. Теперь я не возражаю против этого, но после сквозного перефразирования одного и того же URL-адреса через HttpWebRequest во время продолжительности приложения я заметил, что данные повреждаются (как в загруженных данных JSON становится нецелесообразным). После перезагрузки Phone Emulator все это становится все более, пока это не повторится.WebRequest Кэширование Windows Phone 7

Теперь мне просто интересно, можно ли отключить кеширование в HttpWebRequest.

Вот некоторые из кода, я использую, чтобы сделать HttpWebRequest вызов:

var request = (HttpWebRequest)WebRequest.Create(string.Format(uri)); 

     request.BeginGetResponse(a => 
     { 
      var response = request.EndGetResponse(a); 
      var responseStream = response.GetResponseStream(); 
      using (var sr = new StreamReader(responseStream)) 
      { 
       string json = sr.ReadToEnd(); 
       Deployment.Current.Dispatcher.BeginInvoke(() => 
       { 
        //Newtonsoft.Json.Linq; 
        JObject artistObject = JObject.Parse(json); 
        //...etc 
       }); 
      } 
     }, null); 
    } 

ответ

4

Общий метод, чтобы обойти это кэширование, чтобы добавить параметр в строке запроса, который увеличивается на единицу при последующих вызовах. В этом разделе более подробно обсуждается поведение Silverlight, и он охватывает некоторую обработку сервера, на которую вы можете смотреть, если у вас есть этот элемент управления.

WebClient Caching Problem

С учетом сказанного, вы были в состоянии произвести простую репро о коррупции вы столкнулись? Возможно, стоит обратить внимание на это.