Как проверить бинарный или текстовый запрос в HttpWebRequest в C#?

Есть ли способ определить, если ответ от HttpWebRequest в C# содержит двоичные данные против текста? Или есть другой класс или функция, которую я должен использовать для этого?

Вот пример кода. Я хотел бы знать, прежде чем читать StreamReader если содержание не текстовое.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.someurl.com");
request.Method = WebRequestMethods.Http.Get;
using (WebResponse response = request.GetResponse())
{
    // check somewhere in here if the response is binary data and ignore it 
    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    {
        string responseDetails = reader.ReadToEnd().Trim();
    }
}

1 ответ

Решение

Как правило, веб-сайты сообщают вам в заголовке Content-Type, какие данные они возвращают. Вы можете определить это, получив ContentType свойство из ответа.

Но сайты, как известно, лгут. Или не говори ничего. Я видел оба. Если заголовок Content-Type отсутствует или вы не хотите ему доверять, то единственный способ узнать, какие там данные, - прочитать их.

Но тогда, если вы не доверяете сайту, почему вы читаете данные с него?

Другие вопросы по тегам