Кэширование веб-запросов Windows Phone 7 - PullRequest
2 голосов
/ 06 января 2011

Насколько я понимаю, класс HttpWebRequest всегда кэширует загруженные данные. Теперь я не возражаю против этого, но после тщательного повторного анализа одного и того же URL-адреса с помощью HttpWebRequest во время работы приложения, я заметил, что данные повреждаются (как в загруженных данных JSON становится не разбираемым). После перезагрузки эмулятора телефона все идет гладко, пока не произойдет снова.

Теперь мне просто интересно, можно ли отключить кеширование в 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);
    }

1 Ответ

4 голосов
/ 06 января 2011

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

Проблема кэширования WebClient

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...