ASP.NET延迟调用或多次调用第三方Web API服务
本篇体验使用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延迟调用或多次调用第三方Web API服务的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。
相关文章:
1. 如何将asp.net core程序部署到Linux服务器2. asp.net core 中的Jwt(Json Web Token)的使用详解3. IIS Express 取代 ASP.NET Development Server的配置方法4. asp.net core应用docke部署到centos7的全过程5. 理解ASP.NET Core 配置系统6. ASP.NET MVC使用jQuery的Load方法加载静态页面及注意事项7. ASP.NET Core 依赖注入生命周期示例详解8. ASP.NET MVC把数据库中枚举项的数字转换成文字9. ASP.NET Core WebSocket集群实现思路详解10. ASP.NET MVC实现单个图片上传、限制图片格式与大小并在服务端裁剪图片

网公网安备