Как отключить кеширование с помощью WebClient и Windows Phone 7 - PullRequest
8 голосов
/ 02 марта 2011

Я звоню в веб-службу REST, и мобильное приложение извлекает результаты из своего кэша, но не отправляется на сервер.

Я видел другие предлагаемые исправления ( аналогичная проблема и аналогичная проблема2 ), но свойство Cache недоступно в silverlight 4.

Кто-нибудь имеет представление о том, как заставить silverlight 4 на Windows Phone 7 делать запрос, а непопал в кеш?

Ответы [ 4 ]

16 голосов
/ 03 марта 2011

Хотя это и не идеально, простое решение состоит в том, чтобы отправить что-то вроде поля «мусор» со значением DateTime.Now.Таким образом, значение всегда новое и никогда не будет кэшировано.Если вы делали это в стандартном запросе, например:

"&junk=" + DateTime.Now;
5 голосов
/ 02 марта 2011

Я столкнулся с этой проблемой и при переполнении 7, общаясь со StackApps - единственное, о чем я мог подумать, это добавить дополнительную случайную переменную в конец запроса HTTP / REST.

3 голосов
/ 22 января 2014

Наиболее предложенное решение такое же, как у Уильяма Мелани. Но это не идеально, и некоторые сервисы отклоняют запросы с неизвестными параметрами или любым другим параметром. В этом случае проще и надежнее использовать заголовок IfModifiedSince следующим образом:

    WebClient wc = new WebClient();
    wc.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();
    wc.DownloadStringCompleted += wc_DownloadStringCompleted;
    wc.DownloadStringAsync(new Uri(bitstampUrl));
0 голосов
/ 02 января 2015
WebClient wc = new WebClient();
wc.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();

работал для меня

...