Как получить размер файла из http заголовков

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
63
задан Dan Beaulieu 23 March 2017 в 18:40
поделиться

2 ответа

Да, принятие сервера HTTP, с которым Вы говорите, поддерживает/позволяет это:

public long GetFileSize(string url)
{
    long result = -1;

    System.Net.WebRequest req = System.Net.WebRequest.Create(url);
    req.Method = "HEAD";
    using (System.Net.WebResponse resp = req.GetResponse())
    {
        if (long.TryParse(resp.Headers.Get("Content-Length"), out long ContentLength))
        {
            result = ContentLength;
        }
    }

    return result;
}

При использовании ГЛАВНОГО метода не позволяется, или заголовок Довольной Длины не присутствует в ответе сервера, единственный способ решить, что размер содержания на сервере должен загрузить его. Так как это не особенно надежно, большинство серверов будет включать эту информацию.

91
ответ дан Fidel 24 November 2019 в 16:20
поделиться

это может быть сделано с HTTP-заголовками?

Да, это - способ пойти. , Если информация предоставляется, это находится в заголовке как Content-Length. Обратите внимание, однако, что это не обязательно имеет место.

Загрузка только заголовок может быть сделан с помощью HEAD запрос вместо GET. Возможно, следующий код помогает:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://example.com/");
req.Method = "HEAD";
long len;
using(HttpWebResponse resp = (HttpWebResponse)(req.GetResponse()))
{
    len = resp.ContentLength;
}

Уведомление свойство для длины содержания на HttpWebResponse объект †“В никакая потребность проанализировать Content-Length заголовок вручную.

27
ответ дан TheHitchenator 24 November 2019 в 16:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: