使用HttpClient消费ASP.NET Web API服务
2023-09-11 14:16:51 时间
本篇体验使用HttpClient消费ASP.NET Web API服务,例子比较简单。
依次点击"文件","新建","项目"。
选择"ASP.NET Web API"项目。
在Models文件夹下创建Person.cs类。
public class Person{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }}
在Controllers文件夹下创建一个空的PersonController。
public class PersonController : ApiController{}
创建一个符合管理的方法GetAllPersons。
public class PersonController : ApiController{public IEnumerable<Person> GetAllPersons(){return new List<Person>{new Person(){Id = 1, FirstName = "jack", LastName = "li"},new Person(){Id = 2, FirstName = "darren", LastName = "ji"},new Person(){Id = 3, FirstName = "sunny", LastName = "su"}};}}
在浏览器中输入:
http://localhost:2497/api/Person
http://localhost:2497/api/Person/AllPersons
都可以获取到数据。
在解决方案下创建一个控制台应用程序。
在控制台下引用System.Net,并编写如下:
static void Main(string[] args){using (WebClient proxy = new WebClient()){var response = proxy.DownloadString("http://localhost:2497/api/Person");Console.WriteLine(response);Console.ReadKey();}}
把控制台程序设置为启动项。点击"启动"。
如果想获取xml格式,可以设置WebClient的Headers属性。
代码修改如下:
static void Main(string[] args){using (WebClient proxy = new WebClient()){proxy.Headers.Add(HttpRequestHeader.Accept, "application/xml");var response = proxy.DownloadString("http://localhost:2497/api/Person");Console.WriteLine(response);Console.ReadKey();}}
WebClient用起来似乎也不错,不过,HttpClient具有更丰富的API。HttpClient把接收的信息封装在HttpResponseMessage类中,把发出请求的信息封装到HttpRequestMessage中。
在控制台应用程序引用如下:
System.Net.Http.dll
System.Net.Http.Formatting.dll
编写如下:
static void Main(string[] args){Console.WriteLine("获取ASP.NET Web API服务内容如下:");HttpClient proxy = new HttpClient();proxy.GetAsync("http://localhost:2497/api/Person").ContinueWith((previous) =>{HttpResponseMessage response = previous.Result;response.Content.ReadAsStringAsync().ContinueWith((a) =>{foreach (var item in a.Result){Console.WriteLine(item.ToString());}});});Console.ReadKey(true);}
以上就是创建简单的ASP.NET Web API服务,以及使用WebClient和HttpClient消费服务的简单例子。
相关文章
- 学习ASP.NET Core Blazor编程系列二十六——登录(5)
- 使用 ASP.NET Core MVC 创建 Web API(五)
- 使用 ASP.NET Core MVC 创建 Web API(四)
- 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- ASP.NET Web Optimization Framework
- custom serializer for just one property in Json.NET
- Implement JSON Web Tokens Authentication in ASP.NET Web API and Identity 2.1 Part 3 (by TAISEER)
- ASP.NET Web API Claims Authorization with ASP.NET Identity 2.1 Part 5 (by TAISEER)
- Parameter Binding in ASP.NET Web API
- Routing in ASP.NET Web API
- ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据
- ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
- asp.net mvc 不显示HTML标签;输出HTML内容,不输出HTML标签
- Asp.net/Jquery/JS中各种数据转换为【JSON数据格式】的类!(相当好,转)
- ASP.NET简易教程-页面布局
- 前端AngularJS后端ASP.NET Web API上传文件
- 对一个前端使用AngularJS后端使用ASP.NET Web API项目的理解(2)
- 在ASP.NET Core Web API中为RESTful服务增加对HAL的支持
- 在docker中运行ASP.NET Core Web API应用程序
- 《精通 ASP.NET MVC 5》----1.8 本书所需的软件
- 《圣殿祭司的ASP.NET4.0专家技术手册》----1-2 .NET 4.0平台新功能概览
- 基于ASP.NET+SQL Server实现(Web)企业进销存管理系统【100010296】
- 在Windows下编写并运行第一个ASP.NET 5 Preview Web API程序
- Exception Handling in ASP.NET Web API
- ASP.NET Web API Authorization using Tokens
- ASP.NET MVC4 ASP.NET Web API路由规则
- asp.net-web form-URL 路由
- asp.net页面中的Console.WriteLine结果如何查看