Example #1
0
        /// <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();
        }
Example #2
0
        /// <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();
        }
Example #3
0
        /// <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();
        }
Example #4
0
        /// <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();
        }