用Web API Client 调用 Web API
安装Web API客户端库
右键单击项目,选择管理 NuGet程序包,选择联机选项,选择全部,在搜索框中输入“Microsoft.AspNet.WebApi.Client”,
搜索结果就是要安装的类库,单击安装到完成。NuGet会自动添加引用
需要引入的命名空间:
using System.Net.Http;
using System.Net.Http.Headers;
Get调用
HttpClient初始化
HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:9000/"); // Add an Accept header for JSON format. // 为JSON格式添加一个Accept报头 client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.GetAsync("api/GetEmployees").Result; //转换为同步方法
response 中可以直接拿到http请求状态。
if (response.IsSuccessStatusCode) //请求成功 { //从方法名中可以看出是异步调用,取Result后,就变成同步了, var results = response.Content.ReadAsAsync<IEnumerable<Employee>>().Result; foreach (var p in results) { Console.WriteLine("{0}\t{1};\t{2}", p.Name, p.Age, p.Sex); } } else { Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase); }
Post调用
using System.Net.Http; using System.Net.Http.Headers; //api 为 http://localhost:8000/Employee/Update //传入参数 name,age,sex HttpClient client = new HttpClient(); public override bool SendMessage() { client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var paras= new { name ="", age =10,sex="男" }; try { var response = client.PostAsJsonAsync(" http://localhost:8000/Employee/Update", paras).Result; //如果调用失败,抛出异常 response.EnsureSuccessStatusCode(); if (response.IsSuccessStatusCode) { var result = response.Content.ReadAsStringAsync(); //result.Result 是一个json字符串,解析后就可以拿到调用后的返回值 return false; } else { return false; } } catch (Exception ex) { return false; } return true; }
put,和delete方法调用同post类似,在此不再介绍。
作者:逐帆
出处:http://www.cnblogs.com/langhua/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。