博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#_模拟webAp_POST-GET-PUT-DELETE
阅读量:5159 次
发布时间:2019-06-13

本文共 4940 字,大约阅读时间需要 16 分钟。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.IO;using System.Web;namespace WebAPIClientDemo{    public class RestClient    {        private string BaseUri;        public RestClient(string baseUri)        {            this.BaseUri = baseUri;        }        #region Delete方式        public string Delete(string data, string uri)        {            return CommonHttpRequest(data, uri, "DELETE");        }        public string Delete(string uri)        {            //Web访问对象64            string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);            myRequest.Method = "DELETE";            // 获得接口返回值68            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);            //string ReturnXml = HttpUtility.UrlDecode(reader.ReadToEnd());            string ReturnXml = reader.ReadToEnd();            reader.Close();            myResponse.Close();            return ReturnXml;        }        #endregion        #region Put方式        public string Put(string data, string uri)        {            return CommonHttpRequest(data, uri, "PUT");        }        #endregion        #region POST方式实现        public string Post(string data, string uri)        {            return CommonHttpRequest(data,uri,"POST");        }        public string CommonHttpRequest(string data, string uri,string type)        {            //Web访问对象,构造请求的url地址            string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);            //构造http请求的对象            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);            //转成网络流            byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);            //设置            myRequest.Method = type;            myRequest.ContentLength = buf.Length;            myRequest.ContentType = "application/json";            myRequest.MaximumAutomaticRedirections = 1;            myRequest.AllowAutoRedirect = true;            // 发送请求            Stream newStream = myRequest.GetRequestStream();            newStream.Write(buf, 0, buf.Length);            newStream.Close();            // 获得接口返回值            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);            string ReturnXml = reader.ReadToEnd();            reader.Close();            myResponse.Close();            return ReturnXml;        }        #endregion        #region GET方式实现        public string Get(string uri)        {            //Web访问对象64            string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);                       //构造一个Web请求的对象            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);            // 获得接口返回值68            //获取web请求的响应的内容            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();                        //通过响应流构造一个StreamReader            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);            //string ReturnXml = HttpUtility.UrlDecode(reader.ReadToEnd());            string ReturnXml = reader.ReadToEnd();            reader.Close();            myResponse.Close();            return ReturnXml;        }        #endregion    }}

调用方式

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace WebAPIClientDemo{    class Program    {        static void Main(string[] args)        {            RestClient client = new RestClient("http://localhost:50168");            #region Get 方式请求列表            string str = client.Get("api/values");            Console.WriteLine(str);             #endregion            #region Get 方式请求id对应的数据            string strGetById = client.Get("api/values/2");            Console.WriteLine(strGetById);             #endregion            #region Post 方式 添加数据            string postUri = "api/values/";            string userJson = @"{""Id"":123,""Age"":12,""UserInfo"":""111""}";            string postResponse = client.Post(userJson, postUri);            Console.WriteLine(postResponse);            #endregion            #region Delete             string deleteUri = "api/values/3";             string deleteResponse = client.Delete(deleteUri);            Console.WriteLine(  deleteResponse);            #endregion            #region Put            string putUri = "api/values/123";            string userJson3 = @"{""Id"":123,""Age"":12,""UserInfo"":""111""}";            string putResponse = client.Post(userJson3, putUri);            Console.WriteLine(putResponse);            #endregion            Console.ReadKey();        }    }}

 

转载于:https://www.cnblogs.com/MarchThree/p/3908687.html

你可能感兴趣的文章
<C++> 类(2):对象的种类 类之间的关系 重载操作符operator
查看>>
软工网络15个人作业5——软件工程总结
查看>>
c#字符串加载wpf控件模板代码 - 简书
查看>>
WPF 自定义滚动条(ScrollView、ScrollBar)样式
查看>>
C#远程时间同步助手软件设计
查看>>
照片美妆---人脸老化
查看>>
WCF中自定义消息编码器:压缩编码器的使用
查看>>
Visual Studio跨平台开发实战(2) - Xamarin.iOS基本控制项介绍
查看>>
.Net 转战 Android 4.4 日常笔记目录
查看>>
IntelliJ IDEA 开发swing(二)
查看>>
十五天精通WCF——第十二天 说说wcf中的那几种序列化
查看>>
【.net深呼吸】动态类型(高级篇)
查看>>
javascript运算符整理
查看>>
消除类游戏(js版)
查看>>
【javascript基础】5、创建对象
查看>>
跟我一起学习ASP.NET 4.5 MVC4.0(六)
查看>>
IBM RSA (IBM rational software architect ) V8 学习之六 C++类模板设计
查看>>
SQL SERVER 2008 EXPRESS版本远程连接(tcp/ip)
查看>>
asp.net开源CMS推荐
查看>>
查询数据库里有多少张表、视图、存储过程
查看>>