ASP.NET MVC (五、HttpClient接口解析)
目錄
前言:
1、MVC項目創建
?2、【GET】請求的API解析
?3、【Post】請求【API】解析
前言:
MVC對于已經跨域的接口進行解析是個比較容易的事情。況且在第四章節的時候已經通過Ajax進行了頁面的解析測試,效果也比較明顯。所以本章節從容應對。
這個世界上只有一種真正的英雄主義:
認清生活的真相,并且仍然熱愛它。難道向上攀爬的那條路,不是比站在頂峰更讓人心潮澎湃嗎?
1、MVC項目創建
在解決方案上點擊【鼠標右鍵】,依次選擇【添加】【新建項目】
?選擇【ASP.NET Web應用程序(.NET Framework)】項目,點擊【下一步】
?輸入項目名稱,這里是【MVC】
?選擇【MVC】項目,并取消【為HTTPS配置】,點擊【創建】
?完成創建:
?2、【GET】請求的API解析
創建返回對象
[Serializable] public class ResultType {public int code { get; set; }public string message { get; set; }public object result { get; set; } }?編寫解析過程(HomeController.cs):
//客戶端請求 HttpClient http = new HttpClient(); //請求地址 string url = "http://localhost:5833/api/Test/GetInfo"; //異步請求 Task<string> task = http.GetStringAsync(url); //獲取數據解析,并發送至前臺 ViewBag.ResultTyle = JsonConvert.DeserializeObject<ResultType>(task.Result); return View();前臺編碼:
?清空當前【Index】視圖所有內容【Ctrl+A+Delete】
?輸入以下編碼:
@ViewBag.ResultTyle.code <hr/> @ViewBag.ResultTyle.message <hr/> @ViewBag.ResultTyle.result?啟動測試(需要api與mvc均運行)
先行啟動【demo】的【api】項目后,將?【MVC】設為啟動項。
解析成功:
?3、【Post】請求【API】解析
?編寫解析過程(HomeController.cs):
//客戶端請求 HttpClient http = new HttpClient(); var str = "";//請求數據。這里為空 HttpContent content = new StringContent(str); //請求地址 string url = "http://localhost:5833/api/Test/GetPostInfo"; Task<HttpResponseMessage> postTask = http.PostAsync(url,content); HttpResponseMessage result = postTask.Result;//拿到網絡請求結果 result.EnsureSuccessStatusCode();//拋出異常 Task<string> task = result.Content.ReadAsStringAsync();//異步讀取數據 //發送值前臺 ViewBag.ResultTyle = JsonConvert.DeserializeObject<ResultType>(task.Result);編碼位置:
?請求效果:
?如果需要傳遞數據請進行序列化操作:
//例如: //序列化 user user = new user(); user.userName= "admin"; user.password = "123456"; var str = JsonConvert.SerializeObject(user);post傳參案例
注:【傳參無非就是以【?&】字符串拼接后執行】
[HttpPost] public void UpdateInfo(string id,string nickName,string introduce) {//請求地址string url = string.Format("http://localhost:5534/api/Test/UpdateById?id={0}&nickName={1}&introduce={2}", id, nickName, introduce);//發送值前臺Success success = RequestPost(url);//根據請求返回判斷結果if (success.code == 200){Response.Write("<script>alert('" + success.message + "');window.location.href='Index'</script>");}else{Response.Write("<script>alert('" + success.message + "');window.location.href='UpdatePage'</script>");} }/// <summary> /// Post /// </summary> /// <param name="url"></param> /// <returns></returns> public Success RequestPost(string url) {//客戶端請求HttpClient http = new HttpClient();var str = "";//請求數據。這里為空HttpContent content = new StringContent(str);//請求地址Task<HttpResponseMessage> postTask = http.PostAsync(url, content);HttpResponseMessage result = postTask.Result;//拿到網絡請求結果result.EnsureSuccessStatusCode();//拋出異常Task<string> task = result.Content.ReadAsStringAsync();//異步讀取數據//發送值前臺return JsonConvert.DeserializeObject<Success>(task.Result); }希望能對大家有所幫助。?
?第五章【五、ASP.NET MVC (五、HttpClient接口解析)】完結。
【一、控制器與視圖:https://laoshifu.blog.csdn.net/article/details/120126288】
【二、數據傳遞:https://laoshifu.blog.csdn.net/article/details/120127320】
【三、表單與文件上傳:https://laoshifu.blog.csdn.net/article/details/120130566】
【四、ASP.NET Web API應用程序與跨域操作:https://laoshifu.blog.csdn.net/article/details/120160728】
【五、HttpClient接口解析:https://laoshifu.blog.csdn.net/article/details/120332379】
總結
以上是生活随笔為你收集整理的ASP.NET MVC (五、HttpClient接口解析)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC (四、ASP.N
- 下一篇: 炫“库”行动-人大金仓征文大赛—数据领域