Как проверить бинарный или текстовый запрос в 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 отсутствует или вы не хотите ему доверять, то единственный способ узнать, какие там данные, - прочитать их.
Но тогда, если вы не доверяете сайту, почему вы читаете данные с него?