/// <summary> /// 请求回调 /// </summary> /// <param name="asyncResult"></param> public void RequestCallback(IAsyncResult asyncResult) { allDone.Reset(); var responseData = ""; try { var request = (WebRequest)asyncResult.AsyncState; var response = (WebResponse)request.EndGetResponse(asyncResult); if (response != null) { using (var responseStream = new StreamReader(response.GetResponseStream())) { responseData = responseStream.ReadToEnd(); if (txtJson.InvokeRequired) { var setJsonTxt = new SetJsonTxt((txt) => { Json = txt; }); setJsonTxt.Invoke(responseData); } else { Json = responseData; } } } else { MessageBox.Show("回调参数错误!"); } } catch (Exception ex) { MessageBox.Show("请求出现异常:" + ex); } allDone.Set(); }
/// <summary> /// ˢ������ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnHttpRefresh_Click(object sender, EventArgs e) { var url = (cboxHttpUrl.Text ?? "").Trim(); var method = (cboxMethod.Text ?? "").Trim(); var contextType = (cboxContentType.Text ?? "").Trim(); var accept = (cboxAccept.Text ?? "").Trim(); var data = (txtHttpData.Text ?? "").Trim(); #region ������֤ var verifyFail = false; if (string.IsNullOrEmpty(url)) { MessageBox.Show("������URL��"); verifyFail = true; } if (string.IsNullOrEmpty(method)) { MessageBox.Show("����������ʽ��"); verifyFail = true; } if (method.Trim().Equals("post", StringComparison.InvariantCultureIgnoreCase) && string.IsNullOrEmpty(data)) { MessageBox.Show("POST ��Ҫ����POST Data��"); verifyFail = true; } if (verifyFail) return; #endregion var responseData = string.Empty; var stopWatch = new Stopwatch(); stopWatch.Start(); try { #region ����url var historyUrl = (_configManage.AppSettings.Settings["HistoryUrl"].Value ?? ""); var historyUrls = historyUrl.Split(new[] { ',', '|' }, StringSplitOptions.RemoveEmptyEntries); var urlExists = false; foreach (var hUrl in historyUrls) { if (hUrl.Equals(url, StringComparison.InvariantCultureIgnoreCase)) urlExists = true; } if (!urlExists) { _configManage.AppSettings.Settings["HistoryUrl"].Value = string.Format("{0}{1}{2}", url, historyUrls.Length > 0 ? "," : "", historyUrl); _configManage.Save(); } #endregion #region ��ʼ���� var request = (HttpWebRequest)WebRequest.Create(url); request.Method = method; request.ContentType = contextType; request.Accept = accept; if (request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase)) { var postData = Encoding.UTF8.GetBytes(data); request.ContentLength = postData.Length; using (var requestStream = request.GetRequestStream()) { requestStream.Write(postData, 0, postData.Length); } } #endregion #region �������� //var result = request.BeginGetResponse(RequestCallback, request); var response = request.GetResponse(); using (var responseStream = new StreamReader(response.GetResponseStream())) { responseData = responseStream.ReadToEnd(); if (txtJson.InvokeRequired) { var setJsonTxt = new SetJsonTxt((txt) => { txtJson.Text = txt; }); setJsonTxt.Invoke(responseData); } else { txtJson.Text = responseData; } Json = responseData; } #endregion } catch (Exception ex) { MessageBox.Show("��������쳣��" + ex); } finally { stopWatch.Stop(); if (cboxReport.Checked) { var sbr = new StringBuilder(2000); sbr.AppendFormat("�������ݣ�{0}�ֽ�\r\n", Encoding.UTF8.GetBytes(url + data).LongLength); sbr.AppendFormat("�������ݣ�{0}�ֽ�\r\n", Encoding.UTF8.GetBytes(responseData).LongLength); sbr.AppendFormat("������ʱ��{0}����\r\n", stopWatch.ElapsedMilliseconds); MessageBox.Show(sbr.ToString(),"���ñ���"); } } //allDone.WaitOne(); }
/// <summary> /// 刷新请求 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnHttpRefresh_Click(object sender, EventArgs e) { var url = (cboxHttpUrl.Text ?? "").Trim(); var method = (cboxMethod.Text ?? "").Trim(); var contextType = (cboxContentType.Text ?? "").Trim(); var accept = (cboxAccept.Text ?? "").Trim(); var data = (txtHttpData.Text ?? "").Trim(); #region 输入验证 var verifyFail = false; if (string.IsNullOrEmpty(url)) { MessageBox.Show("请输入URL!"); verifyFail = true; } if (string.IsNullOrEmpty(method)) { MessageBox.Show("请输入请求方式!"); verifyFail = true; } if (method.Trim().Equals("post", StringComparison.InvariantCultureIgnoreCase) && string.IsNullOrEmpty(data)) { MessageBox.Show("POST 需要传入POST Data!"); verifyFail = true; } if (verifyFail) { return; } #endregion var responseData = string.Empty; var stopWatch = new Stopwatch(); stopWatch.Start(); try { #region 保存url var historyUrl = (_configManage.AppSettings.Settings["HistoryUrl"].Value ?? ""); var historyUrls = historyUrl.Split(new[] { ',', '|' }, StringSplitOptions.RemoveEmptyEntries); var urlExists = false; foreach (var hUrl in historyUrls) { if (hUrl.Equals(url, StringComparison.InvariantCultureIgnoreCase)) { urlExists = true; } } if (!urlExists) { _configManage.AppSettings.Settings["HistoryUrl"].Value = string.Format("{0}{1}{2}", url, historyUrls.Length > 0 ? "," : "", historyUrl); _configManage.Save(); } #endregion #region 开始请求 var request = (HttpWebRequest)WebRequest.Create(url); request.Method = method; request.ContentType = contextType; request.Accept = accept; if (request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase)) { var postData = Encoding.UTF8.GetBytes(data); request.ContentLength = postData.Length; using (var requestStream = request.GetRequestStream()) { requestStream.Write(postData, 0, postData.Length); } } #endregion #region 接收数据 //var result = request.BeginGetResponse(RequestCallback, request); var response = request.GetResponse(); using (var responseStream = new StreamReader(response.GetResponseStream())) { responseData = responseStream.ReadToEnd(); if (txtJson.InvokeRequired) { var setJsonTxt = new SetJsonTxt((txt) => { txtJson.Text = txt; }); setJsonTxt.Invoke(responseData); } else { txtJson.Text = responseData; } Json = responseData; } #endregion } catch (Exception ex) { MessageBox.Show("请求出现异常:" + ex); } finally { stopWatch.Stop(); if (cboxReport.Checked) { var sbr = new StringBuilder(2000); sbr.AppendFormat("请求数据:{0}字节\r\n", Encoding.UTF8.GetBytes(url + data).LongLength); sbr.AppendFormat("返回数据:{0}字节\r\n", Encoding.UTF8.GetBytes(responseData).LongLength); sbr.AppendFormat("请求用时:{0}毫秒\r\n", stopWatch.ElapsedMilliseconds); MessageBox.Show(sbr.ToString(), "调用报告"); } } //allDone.WaitOne(); }
/// <summary> /// ����ص� /// </summary> /// <param name="asyncResult"></param> public void RequestCallback(IAsyncResult asyncResult) { allDone.Reset(); var responseData = ""; try { var request = (WebRequest)asyncResult.AsyncState; var response = (WebResponse)request.EndGetResponse(asyncResult); if (response != null) { using (var responseStream = new StreamReader(response.GetResponseStream())) { responseData = responseStream.ReadToEnd(); if (txtJson.InvokeRequired) { var setJsonTxt = new SetJsonTxt((txt) => { Json = txt; }); setJsonTxt.Invoke(responseData); } else { Json = responseData; } } } else { MessageBox.Show("�ص���������"); } } catch (Exception ex) { MessageBox.Show("��������쳣��" + ex); } allDone.Set(); }