public static HttpWebRequest TestUrl_Async(string url, int index, UrlTestUser caller) { if (!url.StartsWith("http://") && !url.StartsWith("https://")) url = url.Insert(0, "http://"); RequestState requestState = new RequestState(); requestState.index = index; requestState.caller = caller; HttpWebRequest request = null; try { request = (HttpWebRequest)WebRequest.Create(url); System.Net.Cache.HttpRequestCachePolicy policy = new System.Net.Cache.HttpRequestCachePolicy(System.Net.Cache.HttpRequestCacheLevel.BypassCache); request.CachePolicy = policy; request.UserAgent = user_agent; request.AllowAutoRedirect = false; requestState.request = request; IAsyncResult result = (IAsyncResult)request.BeginGetResponse(new AsyncCallback(TestUrl_AsyncCallback), requestState); } catch (WebException we) { requestState.connectionFailure = true; if (we.Status != WebExceptionStatus.RequestCanceled) // old requests that are invalid now shouldn't write into the ListView ResolveUrlTestResult(requestState); } catch (Exception e) { requestState.connectionFailure = true; ResolveUrlTestResult(requestState); } return request; }
public RequestState() { index = -1; request = null; response = null; connectionFailure = false; caller = null; }
public static HttpWebRequest TestUrl_Async(string url, int index, UrlTestUser caller) { if (!url.StartsWith("http://") && !url.StartsWith("https://")) { url = url.Insert(0, "http://"); } RequestState requestState = new RequestState(); requestState.index = index; requestState.caller = caller; HttpWebRequest request = null; try { request = (HttpWebRequest)WebRequest.Create(url); System.Net.Cache.HttpRequestCachePolicy policy = new System.Net.Cache.HttpRequestCachePolicy(System.Net.Cache.HttpRequestCacheLevel.BypassCache); request.CachePolicy = policy; request.UserAgent = user_agent; request.AllowAutoRedirect = false; requestState.request = request; IAsyncResult result = (IAsyncResult)request.BeginGetResponse(new AsyncCallback(TestUrl_AsyncCallback), requestState); } catch (WebException we) { requestState.connectionFailure = true; if (we.Status != WebExceptionStatus.RequestCanceled) // old requests that are invalid now shouldn't write into the ListView { ResolveUrlTestResult(requestState); } } catch (Exception e) { requestState.connectionFailure = true; ResolveUrlTestResult(requestState); } return(request); }