現在、プロキシを使用する必要があるかどうかを判断するためにatry-catch
を処理するために a を使用しています - それは醜いです。WebException
try-catch
プログラムの実行を制御するために使用するのではなく、プロキシを使用する必要があるかどうかを前もって知りたいです。
これが私のコードです:
private bool m_useDefaultWebProxy;
public void DownloadFile(String url, String fileName) {
try {
using (WebClient webClient = new WebClient()) {
if (m_useDefaultProxy) {
this.SetDefaultProxy(webClient)
}
webClient.DownloadFile(url, fileName);
}
}
catch (WebException ex) {
this.HandleWebProxyError(ex);
}
}
private void HandleWebProxyError(WebException ex) {
HttpStatusCode = ((HttpWebResponse)ex.Response).StatusCode;
if (statusCode == HttpStatusCode.ProxyAuthenticationRequired) {
this.m_useDefaultWebProxy.Checked = true;
}
}
private void SetDefaultWebProxy(WebClient webClient) {
IWebProxy proxy = WebRequest.GetSystemWebProxy();
proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
webClient.Proxy = proxy;
}