如何在c#中检查HttpWebRequest中的二进制文本与文本?

时间:2013-04-19 21:19:51

标签: c# httpwebrequest httpwebresponse getresponsestream

有没有办法确定C#中HttpWebRequest的响应是否包含二进制数据与文本?或者我应该使用另一个类或函数来执行此操作?

这是一些示例代码。如果内容不是文字,我在阅读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 个答案:

答案 0 :(得分:3)

通常,网站会在Content-Type标题中告诉您他们返回的是哪种数据。您可以通过从响应中获取ContentType属性来确定。

但众所周知,网站撒谎。或者什么都不说。我见过两者。如果没有Content-Type标头或者您不想信任它,那么通过阅读它就可以告诉您哪种数据的唯一方法。

但是,如果您不信任该网站,为什么要从中读取数据?