4

我需要检查 url 内容类型是否为 pdf?我有一个工作代码,但是我想知道从我拥有的东西中检查的最佳方法是什么。我不需要显示pdf,只需要检查内容类型是否为pdf? 注意:此方法将使用不同的 url 多次调用,所以我不确定是否需要关闭响应。

这是我的代码。

private bool IsValid(string url)
{
    bool isValid = false;
    var request = (HttpWebRequest)WebRequest.Create(url);
    var response = (HttpWebResponse)request.GetResponse();
    if(response.StatusCode == HttpStatusCode.OK && response.ContentType == "application/pdf")
    {
       isValid = true;
    }
    response.Close();
  return isValid;
}
4

1 回答 1

7

是的,因为您不会通过response任何需要处理它的地方。您还应该捕获 WebException 并从那里处理流(我也希望处理响应甚至请求会关闭所有相关资源,但不幸的是,我从未见过确认 Response 对象的这种级联处理行为的文档)。

您还需要关闭/处理请求,因为它是一次性对象。它在GetResponse的注释中指定:

多次调用 GetResponse 返回相同的响应对象;请求不会重新发出。

旁注:考虑发出 HEAD 请求,这样您就不会得到任何流(请参阅方法属性以了解用法)。

var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "HEAD";
于 2012-10-24T15:55:23.897 回答