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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

WebApi 的CRUD 的方法的应用

發(fā)布時間:2025/3/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebApi 的CRUD 的方法的应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.最近一直在忙于開發(fā)公司的新的項目和搭建公司的框架,也好久沒有寫博客了。對于RaidDevelopmentFramework 我有著自己的見解在應(yīng)用到實際的框架中確實挺好用的,但是還是存在一部分的問題。這個需要后期進行不斷的完善以及修改。最近一段時間對于這個WebApi 我又進行重新的研究和學習。

ASP.NET Web API是用于構(gòu)建可以從任何客戶機訪問(包括瀏覽器和移動設(shè)備)的HTTP服務(wù)的框架。 它是一種基于.NET Framework構(gòu)建RESTFUL應(yīng)用程序的理想平臺。

二.那么WebApi 如何在傳統(tǒng)的應(yīng)用程序中進行使用和結(jié)合到.NET FrameWork 來進行使用。

三.ASP.NET Web API特性

  • Web API 是一個構(gòu)建基于restful服務(wù)的理想平臺。

  • Web API 是基于Asp.Net,支持ASP.Net 請求/響應(yīng)管道

  • Web API 有良好的路由機制。

  • Web API 支持不同格式的響應(yīng)數(shù)據(jù),內(nèi)置支持JSON、XML BSON格式。

  • Web API 可以部署非常方便。

  • Web API框架包括新的HttpClient,他可以與Web API服務(wù)器通信。HttpClient可以在ASP.Net MVC服務(wù)器端,Windows Form應(yīng)用程序,控制臺應(yīng)用程序或其他應(yīng)用程序中使用。

  • 四. 關(guān)于

    ?ASP.NET Web API版本

    ?

    web api版本支持的.net framework版本對應(yīng)的MVC版本支持的VS版本
    Web API 1.0.NET Framework 4.0ASP.NET MVC 4VS 2010
    Web API 2.0.NET Framework 4.5ASP.NET MVC 5VS 2012,VS 2013

    ?


    ?ASP.NET Web API VS WCF

    ?

    web apiwcf
    開源,支持.net framework支持.net framework
    只支持HTT通信協(xié)議支持HTTP,TCP,UDP以及自定義通信協(xié)議等
    良好的路由機制來匹配url與對應(yīng)接口基于Attribute來匹配
    使用類似于Asp.net MVC的路由規(guī)則和Controller模型使用Service,契約等
    不支持可靠的消息傳遞和事務(wù)。支持可靠的消息傳遞和事務(wù)。
    可以使用HttpConfiguration 來配置Web Api,不一定需要web.config配置使用web.config和Attribute來配置一個服務(wù)
    適合構(gòu)建RESTful服務(wù)。支持構(gòu)建RESTful服務(wù)但有局限性

    五. 下面通過進行對于CRUD 的方法使用來進行說明。

    1 #region 使用客戶端進行調(diào)用WebApi來進行實現(xiàn) 2 #endregion 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Text; 7 using System.Threading.Tasks; 8 using System.Web.Http; 9 using System.Web.Http.Hosting; 10 using System.Net.Http.Formatting; 11 using System.Net.Http; 12 using System.Net; 13 using WebAPI.Models; 14 using Newtonsoft.Json; 15 using System.Security.Cryptography; 16 using System.IO; 17 18 namespace ConsoleClient 19 { 20 class Program 21 { 22 23 private readonly static JsonMediaTypeFormatter formatter = 24 GlobalConfiguration.Configuration.Formatters 25 .Where(f => 26 { 27 return f.SupportedMediaTypes.Any 28 (v => v.MediaType.Equals("application/json", StringComparison.InvariantCultureIgnoreCase)); 29 }) 30 .FirstOrDefault() as JsonMediaTypeFormatter; 31 static void Main(string[] args) 32 { 33 //GetAll(); 34 //GetFristMessage(); 35 //Update(); 36 //Delete(); 37 Console.WriteLine(DecryptDES("zqindFI5UNSKrp5weiuIm5cScBM=", "Y+Z7bE1/DoLCWxchX9eeyg==")); 38 //AddCustomerMessage(); 39 Console.ReadLine(); 40 } 41 42 /// <summary> 43 /// 獲取列表的信息 44 /// </summary> 45 private static async void GetAll() 46 { 47 HttpClient _httpClient = new HttpClient(); 48 string _url = string.Format(@"http://localhost:3536/api/Customers"); 49 var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip }; 50 var data = await _httpClient.GetAsync(_url); 51 using (var httpClient = new HttpClient(handler)) 52 { 53 var response = await data.Content.ReadAsAsync<List<Customers>>(); 54 var responseModel = await httpClient.GetAsync(_url); 55 if (responseModel.IsSuccessStatusCode == true) 56 { 57 foreach (var items in response.ToList()) 58 { 59 Console.WriteLine("用戶名:" + items.ContactName + "公司名稱:" + items.CompanyName); 60 } 61 Console.WriteLine("=============================================="); 62 var jsonData = await responseModel.Content.ReadAsStringAsync(); 63 Console.WriteLine(jsonData); 64 var customerList = JsonConvert.DeserializeObject<List<Customers>>(jsonData); 65 foreach (var items in customerList.ToList()) 66 { 67 Console.WriteLine("用戶名:" + items.ContactName + "公司名稱:" + items.CompanyName); 68 } 69 } 70 } 71 } 72 73 /// <summary> 74 ///獲取單個的數(shù)據(jù)的信息 75 /// </summary> 76 private static async void GetFristMessage() 77 { 78 var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip }; 79 using (var httpClient = new HttpClient(handler)) 80 { 81 var response = await httpClient.GetAsync(@"http://localhost:3536/api/Customers/Get?id=2"); 82 83 var customer = response.Content.ReadAsAsync<Customers>().Result; 84 var jsonData = response.Content.ReadAsStringAsync().Result;//將其轉(zhuǎn)化為JSON 85 var json = await response.Content.ReadAsStringAsync(); //調(diào)用此方法將其轉(zhuǎn)化為JSON效果和上面一樣 86 Console.WriteLine(json); 87 var customerModel = JsonConvert.DeserializeObject<Customers>(await response.Content.ReadAsStringAsync()); 88 if (response.IsSuccessStatusCode == true) 89 { 90 Console.WriteLine("用戶名稱:" + customerModel.ContactName + "公司名稱:" + customerModel.CompanyName); 91 Console.WriteLine(response.StatusCode); 92 Console.WriteLine(response.RequestMessage); 93 Console.WriteLine("用戶名稱:" + customer.ContactName + "公司名稱:" + customer.CompanyName); 94 } 95 } 96 } 97 98 /// <summary> 99 ///進行更新數(shù)據(jù) 100 /// </summary> 101 private static async void Update() 102 { 103 var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip }; 104 105 using (var httpClient = new HttpClient(handler)) 106 { 107 try 108 { 109 Customers customer = new Customers(); 110 customer.Address = "江蘇"; 111 customer.City = "南京"; 112 customer.CompanyName = "南京***有限公司"; 113 customer.Country = "中國"; 114 customer.CustomerID = 123; 115 customer.Phone = "****"; 116 customer.ContactName = "李四"; 117 118 var content = new FormUrlEncodedContent(new Dictionary<string, string>() 119 { 120 {"ContactName","張三"}, 121 {"Phone","***"}, 122 {"Address","江蘇南京"}, 123 {"Country","中國"}, 124 {"CompanyName","江蘇**"} 125 }); 126 127 //兩種方式的返回的結(jié)果是一致的。但是對于其中的傳輸?shù)姆绞酱_實不一致的。 128 var response = await httpClient.PutAsync<Customers>(@"http://localhost:3536/api/Customers/Get?id=123", customer, formatter); 129 //var response = await httpClient.PutAsync(@"http://localhost:3536/api/Customers/Get?id=123",content); 130 131 var customerModel = response.Content.ReadAsAsync<Customers>().Result; 132 var jsonData = response.Content.ReadAsStringAsync().Result; 133 var json = await response.Content.ReadAsStringAsync(); 134 //將返回的JSON 數(shù)據(jù)進行反序列化成為對象 135 var customerData = JsonConvert.DeserializeObject<CustomersModel>(jsonData); 136 Console.WriteLine(customerData.CompanyName); 137 Console.WriteLine("========================================="); 138 Console.WriteLine(response.Content.ReadAsStringAsync().Result); 139 if (response.IsSuccessStatusCode == true) 140 { 141 if (customerModel != null) 142 { 143 Console.WriteLine("用戶名稱:" + customerModel.ContactName + "公司名稱:" + customerModel.CompanyName); 144 } 145 } 146 147 } 148 catch (Exception ex) 149 { 150 throw new Exception(ex.ToString()); 151 } 152 } 153 } 154 155 /// <summary> 156 ///根據(jù)ID進行刪除的操作 157 /// </summary> 158 private static async void Delete() 159 { 160 var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip }; 161 using (var httpClient = new HttpClient(handler)) 162 { 163 var response =await httpClient.DeleteAsync(@"http://localhost:3536/api/Customers/Delete?id=123"); 164 Console.WriteLine("刪除操作的狀態(tài)碼:"+response.StatusCode); 165 } 166 } 167 168 /// <summary> 169 /// 添加客戶的信息 170 /// </summary> 171 public static async void AddCustomerMessage() 172 { 173 var handler = new HttpClientHandler() {AutomaticDecompression=DecompressionMethods.GZip }; 174 Customers customer = new Customers(); 175 customer.Address = "江蘇"; 176 customer.City = "南京"; 177 customer.CompanyName = "南京****"; 178 customer.Country = "中國"; 179 customer.CustomerID = 123; 180 customer.Phone = "***"; 181 customer.ContactName = "趙六"; 182 using (var httpClient=new HttpClient(handler)) 183 { 184 var response = await httpClient.PostAsync<Customers>(@"http://localhost:3536/api/Customers",customer,formatter); 185 if (response.IsSuccessStatusCode==true) 186 { 187 var data= response.Content.ReadAsStringAsync().Result; 188 Console.WriteLine(response.Content.ReadAsAsync<Customers>().Result.CompanyName); 189 } 190 } 191 } 192 193 public static async void Test(string url= "http://localhost:3536/api/Customers", string json="") 194 { 195 var handler = new HttpClientHandler() { AutomaticDecompression=DecompressionMethods.GZip}; 196 HttpContent httpContent = new StringContent(json); 197 httpContent.Headers.ContentType=new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); 198 using (var httpClient=new HttpClient(handler)) 199 { 200 var response =await httpClient.PostAsync(url, httpContent); 201 Console.WriteLine(response.Content.ReadAsStringAsync().Result); 202 } 203 } 204 205 public class CustomersModel 206 { 207 public int CustomerID { get; set; } 208 public string CompanyName { get; set; } 209 public string ContactName { get; set; } 210 public string ContactTitle { get; set; } 211 public string Address { get; set; } 212 public string City { get; set; } 213 public string Region { get; set; } 214 public string PostalCode { get; set; } 215 public string Country { get; set; } 216 public string Phone { get; set; } 217 public string Fax { get; set; } 218 } 219 220 221 public static string DecryptDES(string decryptString, string decryptKey) 222 { 223 try 224 { 225 byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey); 226 byte[] rgbIV = { 0x13, 0x24, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; 227 228 byte[] inputByteArray = Convert.FromBase64String(decryptString); 229 DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider(); 230 MemoryStream mStream = new MemoryStream(); 231 CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); 232 cStream.Write(inputByteArray, 0, inputByteArray.Length); 233 cStream.FlushFinalBlock(); 234 return Encoding.UTF8.GetString(mStream.ToArray()); 235 } 236 catch 237 { 238 return decryptString; 239 } 240 } 241 242 } 243 }

    ??????????????????????????????????????????????????????????????????????????? 2017.08-20 22:19:23?

    ??????????????????????????????????????????????????????????????????????????? 以上內(nèi)容全部是基于原創(chuàng) 如需轉(zhuǎn)載請標明!!!!謝謝合作。?

    轉(zhuǎn)載于:https://www.cnblogs.com/LowKeyCXY/p/7401762.html

    總結(jié)

    以上是生活随笔為你收集整理的WebApi 的CRUD 的方法的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美女优视频 | 亚洲高清视频网站 | 日本久久一级片 | www视频免费观看 | 日韩欧美精品在线观看 | 国产一区二区观看 | 色屁屁www| 欧美少妇色图 | 成人1区2区3区 | 一区二区国产精品视频 | 亚洲熟妇无码爱v在线观看 九色福利 | 日韩麻豆| 999福利视频 | 亚洲资源在线 | 少妇粉嫩小泬喷水视频www | 国产福利在线看 | 成人免费毛片免费 | 中文字幕 视频一区 | 欧美性猛交xxxx免费看久久久 | 亚洲激情网址 | 情欲超| 免费性情网站 | 亚洲一二区在线 | 国产成人免费在线 | 特级丰满少妇一级aaaa爱毛片 | 亚洲AV无码一区二区三区性 | av大西瓜| 97人人在线视频 | 雨宫琴音一区二区三区 | 大黄网站在线观看 | 一级黄色片免费看 | 天堂а√在线最新版中文在线 | 91麻豆国产福利精品 | 国产又粗又猛又色 | 精品中文字幕一区二区 | 黑人巨大av | 国产欧美在线精品日韩 | 国产福利一区二区三区在线观看 | 超碰在线最新地址 | 香蕉福利视频 | 免费成人在线观看动漫 | 深夜福利一区二区三区 | 日日摸日日碰夜夜爽无码 | 毛片av在线 | 久久发布国产伦子伦精品 | 新久草视频 | 日韩美在线 | 久久一区 | 日韩精品一区二区三区在线视频 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 国产性生活毛片 | 久久禁 | 国产高清一二三区 | 四虎网站在线观看 | 欧美性猛交xxx乱大交3蜜桃 | 台湾chinesehdxxxx少妇 | www.99在线| 99视频这里有精品 | 肮脏的交易在线观看 | 国产福利一区二区三区视频 | 东方av正在进入 | 日韩精品视频一区二区在线观看 | 91口爆一区二区三区在线 | 538国产精品视频一区二区 | 三叶草欧洲码在线 | 欧美婷婷 | 亚洲午夜福利一区二区三区 | 国产又黄又猛又粗又爽 | 欧美视频日韩 | 午夜不卡av免费 | 激情综合久久 | 国产野外作爱视频播放 | 久久久亚洲 | 极品久久久 | 免费淫片 | 日韩亚洲精品视频 | 日韩在线视频一区二区三区 | 色欲AV无码精品一区二区久久 | 青娱乐毛片 | 激情五月俺也去 | wwwxxx黄色 | 99免费| 欧美视频你懂的 | 天天摸天天做天天爽 | 亚洲av永久纯肉无码精品动漫 | 国产av人人夜夜澡人人爽 | 国内视频一区二区三区 | 国产123区在线观看 91国产一区二区 | 熟妇人妻系列aⅴ无码专区友真希 | 污网站在线免费 | 五月婷婷综合久久 | 日韩熟妇一区二区三区 | 任你躁av一区二区三区 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 欧美日皮视频 | 日韩小视频网站 | 中国女人高潮hd | 在线国产一区二区三区 | 古装做爰无遮挡三级视频 |