Webリクエストの「using」ステートメント内に「try/catch」を埋め込んでも大丈夫ですか?私のコードは正しいですか?それが私の要件です:
「using」ステートメントを使用して、HttpWebResponseのリソースがどのような場合でも解放されることを確認したい
- ただし、HttpWebResponseと "response =(HttpWebResponse)request.GetResponse();"に関する例外がある場合は、カスタム処理を実行する必要があります。特に。
私のソースコード:
var result = new HttpHeaderInfo();
HttpWebRequest request = null;
HttpWebResponse response = null;
using (response)
{
try
{
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "HEAD";
request.KeepAlive = false;
request.Timeout = Properties.Settings.Default.WebTimeoutDefault;
response = (HttpWebResponse)request.GetResponse();
result.LastModified = response.LastModified;
result.ContentType = response.ContentType;
result.StatusCode = response.StatusCode;
result.ContentLength = response.ContentLength;
}
catch (Exception ex)
{
if (ex is InvalidOperationException ||
ex is ProtocolViolationException ||
ex is WebException)
{
result.HttpError = ex;
result.LastModified = System.DateTime.MinValue;
result.ContentType = null;
}
else { throw; }
}
}
ありがとう