C#后台进行Http请求

1.Get请求

  新建一个webform项目,添加一个按钮,定义click事件

        protected void Button1_Click(object sender, EventArgs e)
        {
            string url = "https://www.baidu.com/";
            var request = HttpWebRequest.Create(url);
            request.Method = "GET";
            request.BeginGetResponse(ResponseCallBack,request);//发起异步响应式请求,提供一个回调函数和实例本身
        }
        private void ResponseCallBack(IAsyncResult result)//回调函数
        {
            HttpWebRequest httpWebRequest = (HttpWebRequest)result.AsyncState;//获取请求数据
            WebResponse webResponse = httpWebRequest.EndGetResponse(result);//结束异步的响应
            using (Stream stream = webResponse.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    string content = reader.ReadToEnd();//这里就是百度对应的页面Html代码
                }
            }
        }

2.Post请求

   比起Get请求,多了3、4、5三步,

      protected void Button2_Click(object sender, EventArgs e)
        {
            string url = "https://www.cnblogs.com/";
            var request = HttpWebRequest.Create(url);
            request.Method = "POST";
            request.BeginGetRequestStream(RequestStreamCallBack,request);//发起获取数据流请求
        }
        private void RequestStreamCallBack(IAsyncResult result)//比Get多了个载入参数的环节
        {
            HttpWebRequest httpWebRequest=(HttpWebRequest)result.AsyncState;//获取请求流数据
            Stream stream = httpWebRequest.EndGetRequestStream(result);//结束异步的数据流请求
            string param = "postdata";  //定义Post参数
            byte[] data = Encoding.UTF8.GetBytes(param);//把参数转化为字节
            stream.Write(data, 0, data.Length);//写入数据
            stream.Close();
            httpWebRequest.BeginGetResponse(ResponseCallBack, httpWebRequest);
        }
        private void ResponseCallBack(IAsyncResult result)//回调函数,和GET一样
        {
            HttpWebRequest httpWebRequest = (HttpWebRequest)result.AsyncState;
            WebResponse webResponse = httpWebRequest.EndGetResponse(result);
            using (Stream stream = webResponse.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    string content = reader.ReadToEnd();
                }
            }
        }
原文地址:https://www.cnblogs.com/wskxy/p/9366842.html