在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作:
客户端除了可以使用旧有的 WebClient、HttpWebRequest 去访问服务器Api外,还可以使用新的 HttpClient 类别进行操作,HttpClient 类别是包含在 .Net Framework 4.5 中的 System.Net.Http 之命名空间底下,HttpClient 类别一般来说需要在 .Net Framework 4.5 上才能够使用,可以使用 NuGet 搜寻 Microsoft.Net.Http,NuGet 有提供 4.0 可以使用的安装包。 HttpClient类在传递信息的时候通常要通过多层的Handler,进行信息的层层传递,服务器接收到request请求,然后做出应答返回信息,这一过程也被人称为Delegating Handler. 而在网页端,也可以通过Jqery Ajax异步请求Web API获得数据.
dataType的数据类型 •"xml": 返回 XML 文档,可用 jQuery 处理。 二、场景模拟c# Application 控制台模拟访问请求get数据使用HttpClient的PostAsync访问服务器Get请求获的Token,凭借令牌去访问数据,然后返回数据。 1 public class Token 2 { 3 [JsonProperty("Access_Token")] 4 public string AccessToken { get; set; } 5 }
1 static void Main(string[] args) 2 { 3 const string url = "http://localhost:14259/"; 4 var client = new HttpClient(); 5 var dict = new SortedDictionary<string, string>(); 6 dict.Add("client_id", "xiangzhang"); 7 dict.Add("client_secret", "212"); 8 dict.Add("grant_type", "client_credentials"); 9 //var rst = await(@"http://" + Request.RequestUri.Authority + @"/token").PostUrlEncodedAsync(dict).ReceiveJson<Token>(); 10 // Console.WriteLine(_httpClient.PostAsync("/token", new FormUrlEncodedContent(parameters)).Result.Content.ReadAsStringAsync().Result); 11 var rst = client.PostAsync(url + "token", new FormUrlEncodedContent(dict)).Result.Content.ReadAsStringAsync().Result; 12 var obj = JsonConvert.DeserializeObject<Token>(rst); 13 client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", obj.AccessToken); 14 rst = client.GetStringAsync(url + "api/values").Result; 15 Console.WriteLine(rst); 16 Console.ReadLine(); 17 } asp.net Jqery Ajax异步请求1 var apiServiceBaseUri = "http://localhost:14259/"; 1 $.ajax({ 2 url: apiServiceBaseUri + "api/values", 3 type: "get", 4 dataType: "json", 5 headers: { 6 "Authorization": "Bearer " + accessToken 7 }, 8 success: function (data) { 9 10 $("#h11").text(data); 11 }, 12 error: function () { 13 alert("获取数据失败"); 14 } 15 });
Put请求
1 $.ajax({ 2 type: "post", 3 url: apiServiceBaseUri + "token", 4 data: { client_id: "irving", client_secret: "123456", grant_type: "client_credentials" }, 5 dataType: "json", 6 success: function (data) { 7 accessToken = data.access_token;; 8 $.ajax({ 9 type: "post", 10 url: '/Home/getAccessToken', 11 data: { token: accessToken }, 12 dataType: "json" 13 }); 14 }, 15 error: function () { 16 alert("get Token arror!"); 17 } 18 });
|
请发表评论