zoukankan      html  css  js  c++  java
  • 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();
                    }
                }
            }
  • 相关阅读:
    PHP字符串操作
    设置WINDOWS SERVER 2008修改远程桌面连接数
    ThinkPHP小知识点
    thinkphp5 url传参
    炫酷:一句代码实现标题栏、导航栏滑动隐藏。ByeBurger库的使用和实现
    数学API Math.atan() 和Math.atan2() 三角函数复习
    自定义view实现水波纹效果
    Android仅2步实现 滚粗 汉堡导航栏效果~ 全新底部导航交互(滑动隐藏)
    安卓开发遇到Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    在安卓代码中dp 和 sp 换算px
  • 原文地址:https://www.cnblogs.com/wskxy/p/9366842.html
Copyright © 2011-2022 走看看