首页 > 编程语言 >C# Http请求 POST 和 GET 和 DELETE 方式

C# Http请求 POST 和 GET 和 DELETE 方式

时间:2022-11-18 09:58:54浏览次数:64  
标签:Http string GET C# sr rs request POST StreamReader

客户端的HTTP的请求方式一般分为四种:GET、POST、PUT、DELETE,这四种请求方式有什么不同呢。

简单的说,GET就是获取资源,POST就是创建资源,PUT就是更新资源,DELETE 就是删除资源。具体来说:

PUT:PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,资源不会增加。

DELETE:DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。

GET:GET操作是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变,GET只是访问和查看资源。

POST:操作不是安全的,每次请求都会创建资源,当我们多次发出POST请求后,其结果是创建出了多个资源。还有一点需要注意的就是,创建操作可以使用POST,也可以使用PUT,区别在于POST 是作用在一个集合资源之上的(/uri),而PUT操作是作用在一个具体资源之上的(/uri/xxx),再通俗点说,如果URL可以在客户端确定,那么就使用PUT,如果是在服务端确定,那么就使用POST,比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST。

C# POST 请求  

        //创建 Post 的HTTP请求 带Json参数的
        public string PostRequest(string url, string headerToken, string strParam)
        {
            try
            {
                //string strParam = "{\"destNumber\":\"" + strExtTel + "\", \"app\":\"transfer\",\"args\":\"" + strCalledNumber + "\"}";
                //String strUrl = "http://192.168.1.31:80/api/channels";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                //request.ContentType = "text/html, application/xhtml+xml, */*";
                request.ContentType = "application/json";
                request.Headers["X-XTRA-AUTH-ID"] = headerToken; //添加头

                //参数
                ASCIIEncoding encoding = new ASCIIEncoding();
                byte[] data = encoding.GetBytes(strParam);

                request.ContentLength = data.Length;
                Stream sm = request.GetRequestStream();
                sm.Write(data, 0, data.Length);
                sm.Close();

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream rs = response.GetResponseStream();
                //StreamReader sr = new StreamReader(rs, encode);
                StreamReader sr = new StreamReader(rs, Encoding.UTF8);
                var result = sr.ReadToEnd();
                sr.Close();
                rs.Close();
                return result;
            }
            catch (Exception ex)
            {
                myClass.clsLogHelper.m_CreateErrorLogTxt("clsWebSubmit", "PostRequest()", ex.Message.ToString());
                return "-1";
            }
        }

C# GET 请求

        //创建GET的HTTP请求 
        public string GetRequest(string url, string headerToken)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "GET";
            //request.ContentType = "text/html, application/xhtml+xml, */*";
            request.ContentType = "application/json";

            request.Headers["X-XTRA-AUTH-ID"] = headerToken; //添加头

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream rs = response.GetResponseStream();
            //StreamReader sr = new StreamReader(rs, encode);
            StreamReader sr = new StreamReader(rs, Encoding.UTF8);
            var result = sr.ReadToEnd();
            sr.Close();
            rs.Close();
            return result;
        }

C# DELETE 请求

        public string DeleteRequest(string url, string headerToken)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "DELETE";
            //request.ContentType = "text/html, application/xhtml+xml, */*";
            request.ContentType = "application/json";

            request.Headers["X-XTRA-AUTH-ID"] = headerToken; //添加头

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream rs = response.GetResponseStream();
            //StreamReader sr = new StreamReader(rs, encode);
            StreamReader sr = new StreamReader(rs, Encoding.UTF8);
            var result = sr.ReadToEnd();
            sr.Close();
            rs.Close();
            return result;

        }

注:其中  headerToken  可以没有,具体在接口的需求

完整类文件可参考

https://www.cnblogs.com/hailexuexi/p/16895404.html

感谢   的分享

https://blog.csdn.net/fangyu723/article/details/106668905

标签:Http,string,GET,C#,sr,rs,request,POST,StreamReader
From: https://www.cnblogs.com/hailexuexi/p/16902190.html

相关文章

  • react学习
    一:使用npx命令创建临时下载脚手架项目成功后自动删除不占用空间不担心版本低1.运行命令:npxcreate-react-appdemo2.cd到创建的目录下cddemo3.根据package.json中的......
  • CAN 为什么需要收发器
    在RTL代码中集成了两个CANnode,打算直接连接将两个node的Rx和Tx对接,发现两个CANNode无法通信,询问技术支持后才知道必须要收发器。那为什么一定需要收发器呢?除了转换单......
  • C#处理Excel,读取
    Microsoft.Office.Interop.Excel.Applicationapp=newMicrosoft.Office.Interop.Excel.Application();Workbookswbks=app.Workbooks;......
  • vue elementui Switch组件添加开关样式
      /deep/.el-switch{   &::before{    content:'开';    display:none;    color:#fff;    z-index:1;  ......
  • 浅浅理解一定要看哦-HTTPS - 揭秘 TLS 1.2 协议完整握手过程,一定要结合wirshark工具看
    winshark筛选条件为:tlsandip.src==xxx  本文通过对一次TLS握手过程的数据抓包分析做为切入点,希望能进一步的帮助大家理解HTTPS原理。HTTPS是建立在SSL/TLS......
  • MBR10200FAC-ASEMI塑封肖特基二极管MBR10200FAC
    编辑:llMBR10200FAC-ASEMI塑封肖特基二极管MBR10200FAC型号:MBR10200FAC品牌:ASEMI封装:ITO-220AC特性:肖特基二极管正向电流:10A反向耐压:200V恢复时间:5ns引脚数量:2芯......
  • JavaScript_语法_一元运算符与JavaScript_语法_算数&比较运算符
    JavaScript_语法_一元运算符运算符:1.一元运算符:只有一个运算数的运算符++、--、+(正号)、-(负号)......
  • JavaCV音视频开发宝典:vb8和vp9编码的webm格式视频文件转成mp4文件
    本文转载自:https://blog.csdn.net/eguid_1/article/details/125251492《JavaCV音视频开发宝典》专栏目录导航《JavaCV音视频开发宝典》专栏介绍和目录​前言mp4不用......
  • React-hooks面试考察知识点汇总
    Hook简介Hook出世之前React存在的问题在组件之间复用状态逻辑很难React没有提供将可复用性行为“附加”到组件的途径(例如,把组件连接到store)。有一些解决此类问题的......
  • ABC272G
    ABC272G*2187我是超级乱搞王.jpg好像比标算劣但总而言之能过的随机化题意给出一个长度为\(N\)的序列\(A\),其中\(A\)的每个元素均为正整数且互不相同。你需要选......