有没有办法确定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();
}
}
答案 0 :(得分:3)
通常,网站会在Content-Type标题中告诉您他们返回的是哪种数据。您可以通过从响应中获取ContentType
属性来确定。
但众所周知,网站撒谎。或者什么都不说。我见过两者。如果没有Content-Type标头或者您不想信任它,那么通过阅读它就可以告诉您哪种数据的唯一方法。
但是,如果您不信任该网站,为什么要从中读取数据?