示例#1
0
 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);
         }
     }
 }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
            }
        }