Exemplo n.º 1
0
        //回调函数
        protected void HttpCallback(AsyncHttp Http, string Content)
        {
            CallBackInfo info;

            if (!AsyncRequestMap.TryGetValue(Http, out info))
            {
                return;
            }
            if (info != null && info.AsyncReqCCB != null)
            {
                info.AsyncReqCCB(info.key, Content);
            }
            AsyncRequestMap.Remove(Http);
        }
Exemplo n.º 2
0
        //异步请求
        public bool AsyncRequest(string Url, string HttpMethod, Parameter u_key, List <Parameter> ListParam, List <Parameter> ListFile, AsyncRequestCallback Callback, out int CallbackKey)
        {
            if (ListParam == null)
            {
                ListParam = new List <Parameter>();
            }

            if (u_key != null)
            {
                ListParam.Add(u_key);
            }
            string QueryString = HttpUtility.NormalizeRequestParameters(ListParam);


            AsyncHttp AHttp = new AsyncHttp();

            CallbackKey = GetKey();
            CallBackInfo CBInfo = new CallBackInfo();

            CBInfo.key         = CallbackKey;
            CBInfo.AsyncReqCCB = Callback;

            AsyncRequestMap.Add(AHttp, CBInfo);

            bool BResult = false;

            if (HttpMethod.Equals("GET"))
            {
                BResult = AHttp.HttpGet(Url, QueryString, new AsyncHttpCallBack(HttpCallback));
            }
            else if (ListFile == null || ListFile.Count == 0)
            {
                BResult = AHttp.HttpPost(Url, QueryString, new AsyncHttpCallBack(HttpCallback));
            }
            else
            {
                BResult = AHttp.HttpPostFile(Url, QueryString, ListFile, new AsyncHttpCallBack(HttpCallback));
            }

            if (!BResult)
            {
                AsyncRequestMap.Remove(AHttp);
            }
            return(BResult);
        }