Как установить заголовок http If-Modified-Since на веб-запрос в Windows Phone 7?
Попытка установить заголовок "If-Modified-Since" в wp7:
request.Headers[HttpRequestHeader.IfModifiedSince] = dateString;
Выдает ошибку:
Этот заголовок должен быть изменен с соответствующим свойством.
Это означает, что свойство.IsModifiedSince должно использоваться в классе запроса, как описано в MSDN: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.ifmodifiedsince.aspx
Но это свойство не существует в Silverlight, т.е. WP7.
Кто-нибудь смог установить этот заголовок для http-запроса на Windows Phone 7?
Шон Вильдермут опубликовал эту проблему еще в сентябре 2010 года без решения: http://social.msdn.microsoft.com/Forums/en/windowsphone7series/thread/8aec7481-2cf3-4047-b0d4-05d4313a9e4c
Спасибо!
4 ответа
Вы можете просто использовать строку, которая HttpRequestHeader.IfModifiedSince
представляет собой:
request.Headers["If-Modified-Since"] = dateString;
Я должен был сделать это с рядом других заголовков, которые WP7 не предоставляет вспомогательные методы для установки.
Обновить
Исходя из замечаний на http://msdn.microsoft.com/en-us/library/8y7x3zz2(v=VS.95).aspx может показаться, что установить этот заголовок в WP7 невозможно.
В качестве альтернативы вы можете создать свой собственный прокси-сервер для обработки кэширования вашего приложения.
Это можно установить только на HTTPWebRequest
объект так литье WebRequest
должен позволить вам установить свойство, например:
((HttpWebRequest)request).IfModifiedSince = modifiedDate;
Требуется DateTime
объект, поэтому вам может понадобиться сначала проанализировать строку.
Краткий ответ: это не может быть сделано, не поддерживается.
Решением было бы, как утверждает Мэтт Лэйси, создать прокси-класс, чтобы справиться с этим.
Этот прокси установит
request.AllowStreamReadBuffering = false;
и затем анализируйте ответ, пока заголовок не закончится или значение заголовка не будет найдено.
Заметка! Этот обходной путь ограничивает данные, загружаемые в телефон, но не работу, необходимую серверу для обработки запроса.