可以利用HttpClient來進行Web Api的調用。由於WebA Api的調用本質上就是一次普通的發送請求與接收響應的過程,
所有HttpClient其實可以作為一般意義上發送HTTP請求的工具。
using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace 自己的名稱空間 { public class ApiHelper { /// <summary> /// api調用方法/注意一下API地址 /// </summary> /// <param name="controllerName">控制器名稱--自己所需調用的控制器名稱</param> /// <param name="overb">請求方式--get-post-delete-put</param> /// <param name="action">方法名稱--如需一個Id(方法名/ID)(方法名/?ID)根據你的API靈活運用</param> /// <param name="obj">方法參數--如提交操作傳整個對象</param> /// <returns>json字符串--可以反序列化成你想要的</returns> public static string GetApiMethod(string controllerName, string overb, string action, object obj = null) { Task<HttpResponseMessage> task = null; string json = ""; HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:****/api/" + controllerName + "/"); switch (overb) { case "get": task = client.GetAsync(action); break; case "post": task = client.PostAsJsonAsync(action, obj); break; case "delete": task = client.DeleteAsync(action); break; case "put": task = client.PutAsJsonAsync(action, obj); break; default: break; } task.Wait(); var response = task.Result; if (response.IsSuccessStatusCode) { var read = response.Content.ReadAsStringAsync(); read.Wait(); json = read.Result; } return json; } } }
可能需要以下引用集:
System.Net.Http.Formatting.dll
System.Web.Http.dll