Мне нужно каким-то образом проверить размер загрузки, не загружая весь файл. Я использую С# и System.Net.WebClient для загрузки. Проверка должна выполняться в веб-службе asp.net.
Спасибо
Ответ 1
Используйте метод HTTP HEAD, чтобы получить заголовок Content-Length:.
HEAD / HTTP/1.1
Host: www.example.com
HTTP/1.1 200 OK
Date: Wed, 18 Mar 2009 11:21:51 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8
Ответ 2
Сделайте запрос HEAD (а не GET или POST), чтобы просто получить заголовки ответов, это должно включать заголовок длины содержимого с необходимой информацией.
Ответ 3
Вы также можете использовать заголовок HTTP RANGE для загрузки только нужного материала.
Было бы очень просто создать HttpRangeStream, который поддерживает поиск и чтение на удаленном HTTP-ресурсе, если удаленный сервер HTTP 1.1 и правильно поддерживает заголовки RANGE.