Скачать файл в winrt, использовать HttpClient или HttpWebRequest или BackgroundDownloader? - PullRequest
1 голос
/ 26 февраля 2012

Я хочу скачать файл, используя HttpClient или HttpWebRequest или BackgroundDownloader.

Прежде чем отправить запрос, мне нужно изменить заголовок http «Range» и «Cookie», и я хочу получить прогресс загрузкизначение

Теперь проблема в том, что HttpClient может изменить заголовок «Range», но не может получить ход загрузки. HttpWebRequest может получить ход загрузки, но не может изменить заголовок «Range». BackgroundDownloader не может изменить заголовок «Cookie». Это ссылка "Как установить cookie на BackgroundDownloader

Что мне делать?

Ответы [ 3 ]

2 голосов
/ 17 декабря 2012

Я только что нашел этот вопрос случайно.С HttpClient вы можете получить прогресс загрузки (при условии, что сервер отправляет заголовок длины содержимого).В следующем примере возвращаемое содержимое считывается в поток (файл) и вычисляется ход выполнения загрузки.Одна важная вещь заключается в том, что вы передаете HttpCompletionOption.ResponseHeadersRead, чтобы получить ответ, как только любой контент станет доступен и заголовки будут отправлены.

0 голосов
/ 07 ноября 2013

Я реализовал очень простые HTTP-классы в моей библиотеке.Эти классы поддерживают настройку файлов cookie, заголовков, а также IProgress для отчетов о прогрессе (и не только).

Проверьте пример кода на этом сайте: https://mytoolkit.codeplex.com/wikipage?title=Http

0 голосов
/ 23 мая 2012

В WinRT вы можете изменять заголовки сообщений с помощью OperationContextScope. Я не уверен, что это работает с HttpClient, но с HttpWebRequest это работает! См. msdn article для примера.

...