Ejemplo n.º 1
0
        //用_request 提交异步请求
        private async void submitRequestAsyc(HttpWebRequest request)
        {
            if (_request == null)
            {
                return;
            }
            HttpStatusCode statusCode = HttpStatusCode.NotFound;

            try {
                _response = (await request.GetResponseAsync()) as HttpWebResponse;
                Stream responseStream = _response.GetResponseStream();
                if (_response.ContentEncoding.ToLower().Contains("gzip"))
                {
                    responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
                }
                else if (_response.ContentEncoding.ToLower().Contains("deflate"))
                {
                    responseStream = new DeflateStream(responseStream, CompressionMode.Decompress);
                }

                var str = EasyHttpUtils.ReadAllAsString(responseStream, _responseEncoding);
                statusCode = _response.StatusCode;
                _cookieContainer.Add(_response.Cookies);
                _response.Close();
                LogHtml(str);
                if (OnDataReturn != null)
                {
                    OnDataReturn.Invoke(this, new DataReturn("0", EasyHttpUtils.UnicodeDencode(str)));    //TODO
                }
            }
            catch (WebException ex)
            {
                _response = ex.Response as HttpWebResponse;
                if (_response != null)
                {
                    var str = EasyHttpUtils.ReadAllAsString(_response.GetResponseStream(), _responseEncoding);
                    statusCode = (ex.Response as HttpWebResponse).StatusCode;
                    LogHtml(str);
                    if (OnDataReturn != null)
                    {
                        OnDataReturn.Invoke(this, new DataReturn("0", EasyHttpUtils.UnicodeDencode(str)));    //TODO
                    }
                }
            }

            if (_logLevel != EasyHttpLogLevel.None)
            {
                try
                {
                    LogRequet();
                    LogRespose();
                }
                catch (Exception e)
                {
                    Console.WriteLine("\nsubmitRequestAsyc error:" + e.Message);
                }
            }
        }
Ejemplo n.º 2
0
 //打印html
 public void LogHtml(string html)
 {
     if (_logLevel == EasyHttpLogLevel.Body || _logLevel == EasyHttpLogLevel.All)
     {
         if (string.IsNullOrEmpty(html))
         {
             Console.WriteLine("网页返回空");
         }
         else
         {
             Console.WriteLine("\n");
             Console.WriteLine("网页返回值:");
             Console.WriteLine(EasyHttpUtils.UnicodeDencode(html));
         }
     }
 }
Ejemplo n.º 3
0
        private void bgMeetDo_handReq(object sender, DoWorkEventArgs e)
        {
            if (!e.Argument.Equals(_handReqStr))
            {
                Console.WriteLine("is busy------------->bgMeetDo_handReq");
                return;
            }
            _doThingStr = _handReqStr;
            string tmpck     = _cookieHeader;
            string ckstr     = _reqCookieStr;
            string urlstr    = _reqUrlSourceStr;
            string body      = _reqBodyStr;
            var    urlAppend = string.Empty;

            if (string.IsNullOrEmpty(urlstr) || !EasyHttpUtils.CheckIsUrlFormat(urlstr))
            {
                _bgMeet.ReportProgress(0, EasyHttpUtils.UnicodeDencode("url格式不正确:" + urlstr));
                return;
            }
            if (!string.IsNullOrEmpty(this._reqUrlAddStr))
            {
                urlAppend = "&" + this._reqUrlAddStr;
            }
            if (!urlstr.Contains(urlAppend))
            {
                urlstr = EasyHttpUtils.RemoveSpace(EasyHttpUtils.ReplaceNewline(urlstr + urlAppend, string.Empty));
            }

            if (!string.IsNullOrEmpty(ckstr))
            {
                tmpck = EasyHttpUtils.RemoveSpace(EasyHttpUtils.ReplaceNewline(ckstr, string.Empty));
            }

            if (!string.IsNullOrEmpty(body))
            {
                body = EasyHttpUtils.RemoveSpace(EasyHttpUtils.ReplaceNewline(body, string.Empty));
            }

            int recount = getReqCount();

            for (int i = 0; i < recount; ++i)
            {
                EasyHttp http = EasyHttp.With(urlstr);
                if (http == null)
                {
                    _bgMeet.ReportProgress(i, EasyHttpUtils.UnicodeDencode("url格式不正确: " + urlstr));
                    return;
                }
                http.LogLevel(EasyHttp.EasyHttpLogLevel.Header);
                //http.Data("code", "9405");
                http.AddHeadersByDic(_reqHeaderDic);
                http.SetCookieHeader(tmpck);
                if (_reqMethod == ReqMethod.POST)
                {
                    //http.PostForStringAsyc(tmpbody);
                    var resStr = http.PostForString(body);
                    _bgMeet.ReportProgress(i, EasyHttpUtils.UnicodeDencode(resStr));
                }
                else
                {
                    //http.GetForStringAsyc();
                    var resStr = http.GetForString();
                    _bgMeet.ReportProgress(i, EasyHttpUtils.UnicodeDencode(resStr));
                }
                //http.OnDataReturn += new EasyHttp.DataReturnHandler(addDataReturn);
            }
        }
Ejemplo n.º 4
0
        private void bgMeetDo_ConfReq(object sender, DoWorkEventArgs e)
        {
            if (!e.Argument.Equals(_confReqStr))
            {
                Console.WriteLine("is busy------------->bgMeetDo_ConfReq");
                return;
            }
            _doThingStr = this._confReqStr;
            if (_dataInfoList.Count <= 0)
            {
                return;
            }
            int recount  = getReqCount();
            int allCount = 0;

            for (int ct = 0; ct < recount; ++ct)
            {
                for (int i = 0; i < _dataInfoList.Count; ++i)
                {
                    allCount++;
                    var url    = _dataInfoList[i].ck_url;
                    var body   = _dataInfoList[i].ck_body;
                    var cookie = _dataInfoList[i].ck_cookie;

                    var urlAppend  = string.Empty;
                    var bodyAppend = this._reqBodyStr;

                    if (!string.IsNullOrEmpty(this._reqUrlAddStr))
                    {
                        urlAppend = "&" + this._reqUrlAddStr;
                    }
                    if (!url.Contains(urlAppend))
                    {
                        url = EasyHttpUtils.RemoveSpace(EasyHttpUtils.ReplaceNewline(url + urlAppend, string.Empty));
                    }

                    if (!string.IsNullOrEmpty(bodyAppend))
                    {
                        body = EasyHttpUtils.RemoveSpace(EasyHttpUtils.ReplaceNewline(bodyAppend, string.Empty));
                    }

                    EasyHttp http = EasyHttp.With(url);
                    if (http == null)
                    {
                        _bgMeet.ReportProgress(allCount, EasyHttpUtils.UnicodeDencode("url出错!"));
                        return;
                    }
                    http.LogLevel(EasyHttp.EasyHttpLogLevel.Header);
                    //http.Data("code", "9405");//请求内容
                    http.AddHeadersByDic(_reqHeaderDic); //添加请求头
                    http.SetCookieHeader(cookie);        //设置cookie
                    if (_reqMethod == ReqMethod.POST)
                    {
                        //http.PostForStringAsyc(body);
                        var resStr = http.PostForString(body);
                        _bgMeet.ReportProgress(allCount, EasyHttpUtils.UnicodeDencode(resStr));
                    }
                    else
                    {
                        //http.GetForStringAsyc();
                        var resStr = http.GetForString();
                        _bgMeet.ReportProgress(allCount, EasyHttpUtils.UnicodeDencode(resStr));
                    }
                    //http.OnDataReturn += new EasyHttp.DataReturnHandler(addDataReturn);
                }
            }
        }