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 リクエストを作成することを検討してください (使用法についてはMethod プロパティを参照してください)。

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