//用_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); } } }
//打印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)); } } }
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); } }
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); } } }