Как установить заголовок http If-Modified-Since на веб-запрос в Windows Phone 7? - PullRequest
1 голос
/ 25 января 2011

Попытка установить заголовок «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 ]

3 голосов
/ 25 января 2011

Вы можете просто использовать строку, которая HttpRequestHeader.IfModifiedSince представляет:

request.Headers["If-Modified-Since"] = dateString; 

Мне пришлось сделать это с рядом других заголовков, которые WP7 не предоставляет вспомогательные методы для установки.

Обновление
Исходя из замечаний на http://msdn.microsoft.com/en-us/library/8y7x3zz2(v=VS.95).aspx может показаться, что этот заголовок невозможно установить в WP7.

В качестве альтернативы вы можете создать собственный прокси-сервер для обработки кэширования вашего приложения.

1 голос
/ 26 сентября 2012

Это можно установить только для объекта HTTPWebRequest, поэтому приведение WebRequest должно позволить вам установить свойство, например:

((HttpWebRequest)request).IfModifiedSince = modifiedDate;

Требуется объект DateTime, поэтому вам может понадобитьсясначала разбери строку.

0 голосов
/ 01 марта 2011

Краткий ответ: это невозможно, не поддерживается.

Решение, как утверждает Мэтт Лэйси, состоит в том, чтобы создать прокси-класс для обработки этого.

request.AllowStreamReadBuffering = false;

и затем анализируйте ответ, пока заголовок не закончится или значение заголовка не будет найдено.

Примечание!Этот обходной путь ограничивает данные, загружаемые в телефон, но не работу, необходимую серверу для обработки запроса.

0 голосов
/ 25 января 2011
request.Headers.Add("If-Modified-Since", datestring);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...