public static void SendHTTPRequestAsync(string baseUri, Dictionary <string, string> parameters, Action <JsonResponseData> resultCallback, bool usePost = true, bool lowPriority = false, bool pageDataRequest = true) { if (lowPriority) { Action <Action> action = (Action <Action>)(a => JsonWebRequest.SendHTTPRequestAsync(baseUri, parameters, (Action <JsonResponseData>)(res => { a(); resultCallback(res); }), usePost, false, true)); JsonWebRequest._lowPriorityQueue.AddToDelayedExecutionQueue(action, baseUri); } else { Logger.Instance.Info(">>>>>>>>>>>>>>>Starting GETAsync concurrentRequestsNo = {0} ; baseUri = {1}; parameters = {2}", JsonWebRequest._currentNumberOfRequests, baseUri, JsonWebRequest.GetAsLogString(parameters)); Interlocked.Increment(ref JsonWebRequest._currentNumberOfRequests); string queryString = JsonWebRequest.ConvertDictionaryToQueryString(parameters, true); JsonWebRequest.RequestState myRequestState = new JsonWebRequest.RequestState(); try { myRequestState.resultCallback = resultCallback; string requestUriString = baseUri; if (!usePost && queryString.Length > 0) { requestUriString = requestUriString + "?" + queryString; } HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(requestUriString); myHttpWebRequest.UserAgent = AppInfo.AppVersionForUserAgent; myRequestState.request = myHttpWebRequest; if (usePost) { myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; myHttpWebRequest.Method = "POST"; myHttpWebRequest.BeginGetRequestStream((AsyncCallback)(ar => { using (StreamWriter streamWriter = new StreamWriter(myHttpWebRequest.EndGetRequestStream(ar))) streamWriter.Write(queryString); myHttpWebRequest.BeginGetCompressedResponse(new AsyncCallback(JsonWebRequest.RespCallback), myRequestState); }), null); } else { myHttpWebRequest.BeginGetCompressedResponse(new AsyncCallback(JsonWebRequest.RespCallback), myRequestState); } } catch (Exception ex) { Logger.Instance.Error("GetJsonAsync failed.", ex); JsonWebRequest.SafeClose(myRequestState); JsonWebRequest.SafeInvokeCallback(myRequestState.resultCallback, false, null); } } }
private void StartNextScenario() { if (stop) { return; } _stopwatch.Reset(); _stopwatch.Start(); HttpWebRequest request = null; WebClient client = null; switch (_scenario) { case -1: case 0: request = WebRequest.CreateHttp(_uri); request.BeginGetResponse(ContinueScenario, request); break; case 1: request = WebRequest.CreateHttp(_uri); request.BeginGetCompressedResponse(ContinueScenario, request); break; case 2: client = new WebClient(); break; case 3: client = new GzipWebClient(); break; default: Debug.Assert(false); break; } if (null != client) { client.OpenReadCompleted += ContinueScenario; client.OpenReadAsync(_uri); } }
private void StartNextScenario() { _stopwatch.Reset(); _stopwatch.Start(); HttpWebRequest request = null; WebClient client = null; switch (_scenario) { case -1: case 0: request = WebRequest.CreateHttp(_uri); request.BeginGetResponse(ContinueScenario, request); break; case 1: request = WebRequest.CreateHttp(_uri); request.BeginGetCompressedResponse(ContinueScenario, request); break; case 2: client = new WebClient(); break; case 3: client = new GzipWebClient(); break; #if SHARPGIS case 4: client = new SharpGIS.GZipWebClient(); break; #endif default: Debug.Assert(false); break; } if (null != client) { client.OpenReadCompleted += new OpenReadCompletedEventHandler(ContinueScenario); client.OpenReadAsync(_uri); } }