日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

请求WebApi的几种方式

發布時間:2023/11/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 请求WebApi的几种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
請求WebApi的幾種方式

目前所了解的請求WebAPI的方式有通過后臺訪問api 和通過js 直接訪問api接口

首先介紹下通過后臺訪問api的方法,可以使用HttpClient的方式也可以使用WebRequest的方式

1、HttpClient的方式

  (1)Get請求

string url = "http://10.1.1.1:8080/";public ActionResult GetAll(){HttpClient client = new HttpClient();client.BaseAddress = new Uri(url);client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));HttpResponseMessage response = client.GetAsync("api/goods/getlist?pageindex=0&pagesize=10").Result; // Blocking call(阻塞調用)! var result = "";if (response.IsSuccessStatusCode){result = response.Content.ReadAsStringAsync().Result;JavaScriptSerializer Serializer = new JavaScriptSerializer();var items = Serializer.DeserializeObject(result);return Json(items);}else{return Json(result);}} View Code

  (2)Post請求

[HttpPost]public ActionResult AddGood(string paramObj){HttpClient client = new HttpClient();client.BaseAddress = new Uri(url);JavaScriptSerializer jss = new JavaScriptSerializer();var item = jss.Deserialize<Good>(paramObj);var content = new FormUrlEncodedContent(new Dictionary<string, string>() { {"Id","382accff-57b2-4d6e-ae84-a61e00a3e3b5"},{"Category","111"}});client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));HttpResponseMessage response = client.PostAsync("api/goods/add", content).Result;var result = "";if (response.IsSuccessStatusCode){result = response.Content.ReadAsStringAsync().Result;JavaScriptSerializer Serializer = new JavaScriptSerializer();var items = Serializer.DeserializeObject(result);return Json(items);}return View();} View Code

2、WebRequest的方式(該方式是post請求的時候傳入json字符串轉換成流的形式,無需再將json轉換成需要的實體對象了)

所以這種方式只需寫一個公共的方法,每次調用的時候傳入地址和參數即可

公共方法如下:

public class WebRequestHelper{public static string GetRequest(string url){string responseStr = string.Empty;WebRequest request = WebRequest.Create(url);request.Method = "Get";var response = request.GetResponse();Stream ReceiveStream = response.GetResponseStream();using (StreamReader stream = new StreamReader(ReceiveStream, Encoding.UTF8)){responseStr = stream.ReadToEnd();}return responseStr;}public static string PostRequest(string url, string postParameter){string responseStr = string.Empty;WebRequest request = WebRequest.Create(url);request.Method = "Post";request.ContentType = "application/json";byte[] requestData = System.Text.Encoding.UTF8.GetBytes(postParameter);request.ContentLength = requestData.Length;Stream newStream = request.GetRequestStream();newStream.Write(requestData, 0, requestData.Length);newStream.Close();var response = request.GetResponse();Stream ReceiveStream = response.GetResponseStream();using (StreamReader stream = new StreamReader(ReceiveStream, Encoding.UTF8)){responseStr = stream.ReadToEnd();}return responseStr;}/// <summary>/// Http的 WebRequest的特定實現/// </summary>/// <param name="Url"></param>/// <param name="JSONData"></param>/// <returns></returns>public static string GetResponseData(string Url, string JSONData){byte[] bytes = Encoding.UTF8.GetBytes(JSONData);HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);request.Method = "POST";request.ContentLength = bytes.Length;request.ContentType = "application/json";Stream reqstream = request.GetRequestStream();reqstream.Write(bytes, 0, bytes.Length);//聲明一個HttpWebRequest請求 request.Timeout = 90000;//設置連接超時時間 request.Headers.Set("Pragma", "no-cache");HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream streamReceive = response.GetResponseStream();Encoding encoding = Encoding.UTF8;StreamReader streamReader = new StreamReader(streamReceive, encoding);string strResult = streamReader.ReadToEnd();streamReceive.Dispose();streamReader.Dispose();return strResult;}} View Code

調用的使用方法

  (1)Get請求

public ActionResult GetAll(){string result = WebRequestHelper.GetRequest(url + "api/goods/getlist?pageindex=0&pagesize=10");JavaScriptSerializer Serializer = new JavaScriptSerializer();var items = Serializer.DeserializeObject(result);return Json(items);} View Code

  (2)Post請求

[HttpPost]public ActionResult AddGood(string paramObj){string result = WebRequestHelper.PostRequest(url + "api/goods/add", paramObj);JavaScriptSerializer Serializer = new JavaScriptSerializer();var items = Serializer.DeserializeObject(result);return Json(items);} View Code

頁面通過jquery調用

代碼如下:

$.ajax({type: "get",url: "/goods/getall",dataType: "json",data: null,//data: JSON.stringify({// id: "382accff-57b2-4d6e-ae84-a61e00a3e3b6"//}),contentType: "application/json;charset-utf-8",success: function (data) {console.log(data);}});var paramObj = { Id: "382accff-57b2-4d6e-ae84-a61e00a3e3b8",Category:111};$.ajax({type: "post",url: "/goods/AddGood",dataType: "json",//data: null, data: JSON.stringify({paramObj: JSON.stringify(paramObj)}),contentType: "application/json;charset-utf-8",success: function (data) {console.log(data);}}); View Code

?

轉載于:https://www.cnblogs.com/xdot/p/6640182.html

總結

以上是生活随笔為你收集整理的请求WebApi的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。