亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET Web API 開篇示例介紹

2019-11-17 01:40:15
字體:
來源:轉載
供稿:網友

asp.net Web API 開篇示例介紹

ASP.NET Web API 開篇示例介紹

ASP.NET Web API

對于我這個初學者來說ASP.NET Web API這個框架很陌生又熟悉著。

陌生的是ASP.NET Web API是一個全新的框架,對于這個框架在一個項目中起到的作用我暫且還不是很清楚這里也就不妄下結論了,說實話不是我不想而是我無能為力,只能自己去摸索試著去了解它。

熟悉的是ASP.NET Web API跟ASP.NET MVC的框架結構一開始看起來有一些相似的地方。

話就不多說了,大家就和我一起來學習ASP.NET Web API這個全新的框架吧。

ASP.NET Web API演示示例

環境基礎配置

首先我們新建一個類庫項目命名為Common,并且定義個貨品信息類型,示例代碼如下:

代碼1-1

namespace Common{    public class PRoduct    {        public string ProductID { get; set; }        public string ProductName { get; set; }        public string ProductCategory { get; set; }    }}

建立WebHost宿主環境

然后我們接著創建一個空的ASP.NET WEB應用程序命名為WebHost,這里說明一下ASP.NET Web API框架只是個獨立框架,它并不能獨立運行,所以它需要宿主環境,剛剛我們新建的WEB應用程序則會在下面的示例中暫時的承載著ASP.NET Web API框架來運行。

引用程序集

Newtonsoft.Json.dll 路徑: C:/Program Files/Microsoft ASP.NET/ASP.NET MVC 4/Packages/Newtonsoft.Json.4.5.6/lib/net40Newtonsoft.Json.dll

System.Net.Http.dll 路徑:C:/Program Files/Microsoft ASP.NET/ASP.NET MVC 4/Assemblies/ System.Net.Http.dll

System.Net.Http.Formatting.dll路徑:C:/Program Files/Microsoft ASP.NET/ASP.NET MVC 4/Assemblies/ System.Net.Http.Formatting.dll

System.Web.Http.dll 路徑:C:/Program Files/Microsoft ASP.NET/ASP.NET MVC 4/Assemblies/ System.Web.Http.dll

System.Web.Http.WebHost.dll路徑:C:/Program Files/Microsoft ASP.NET/ASP.NET MVC 4/Assemblies/System.Web.Http.WebHost.dll

Common.dll (項目引用)

或者采用這種引用方式:

(如果上文中所述的目錄位置沒有Newtonsoft.Json.dll的話可以文件搜索一下,然后手動引用。)

隨之我們再建立一個Web應用程序處理類Globl.asax ,并在其application_Start()方法中注冊路由,示例代碼如下:

代碼1-2

using System.Web.Http;namespace WebHost{    public class Global : System.Web.HttpApplication    {        protected void Application_Start(object sender, EventArgs e)        {            GlobalConfiguration.Configuration.Routes.MapHttpRoute(              "DefaultAPI", "api/{controller}/{id}", new { controller="product",id = RouteParameter.Optional });        }    }}

路由注冊好了之后,我們還得新建個Web API控制器,命名為ProductController,示例代碼如下:

代碼1-3

using System.Web.Http;using Common;namespace WebHost.Controllers{    public class ProductController:ApiController    {        private static List<Product> products;        static ProductController()        {            products = new List<Product>();            products.AddRange(                new Product[]                 {                    new Product(){ ProductID="001", ProductName="牙刷",ProductCategory="洗漱用品"},                    new Product(){ ProductID="002", ProductName="《.NET框架設計—大型企業級應用框架設計藝術》", ProductCategory="書籍"}                });        }        public IEnumerable<Product> Get(string id = null)        {            return from product in products where product.ProductID == id || string.IsNullOrEmpty(id) select product;        }    }}

在代碼1-3中我們看到ProductController控制器繼承自ApiController,這里的方式我的猜想應該是跟ASP.NET MVC框架對控制器的處理一樣,在請求到來之后并且經過路由處理之后,Web API框架會把當前項目中所有引用的程序集全部查找一下并且搜出繼承自ApiController的類型,并且緩存在一個xml文件,不知道猜想的對不對在后面的篇幅我們再來驗證,這里提一下。

細心的朋友的可能發現在路由注冊的時候并沒有對應的Action的路由參數,其實這里就是Web API框架的一個不同之處,它是根據Http請求方法來確定Action的方法的,然而瀏覽器默認的請求方法就是Http-get,所以我們這個時候可以直接運行項目。

圖2

建立SelfHost

下面我們來看一下在SelfHost宿主環境中ASP.NET Web API框架的使用示例。

首先我們新建一個控制臺應用程序命名為SelfHost,SelfHost環境項目的程序集引用和上面所說的WebHost項目引用唯一不同的就是把System.Web.Http.WebHost.dll程序集換成System.Web.Http.SelfHost.dll程序集,引用路徑不變,也可以利用引用里的擴展欄來添加。

下面就讓我們看一下在SelfHost中我們需要做哪些事,首先我們需要注冊路由這是每次最先做的事情,示例代碼如下:

代碼1-4

using System.Web.Http;using System.Web.Http.SelfHost;namespace SelfHost{    class Program    {        static void Main(string[] args)        {            HttpSelfHostConfiguration selfHostConfiguration =                new HttpSelfHostConfiguration("http://localhost/selfhost");            using (HttpSelfHostServer selfHostServer = new HttpSelfHostServer(selfHostConfiguration))            {                selfHostServer.Configuration.Routes.MapHttpRoute(                    "DefaultApi", "api/{controller}/{id}", new { id=RouteParameter.Optional});                selfHostServer.OpenAsync();                Console.WriteLine("服務器端服務監聽已開啟");                Console.Read();            }        }    }}

這里就簡要的說明一下,在1-4代碼中HttpSelfHostConfiguration對象示例中設置了基地址,對于HttpSelfHostConfiguration類型它是繼承自HttpConfiguration類型,HttpConfiguration類型是比較重要的一個類型,WebAPI框架中大多數的配置信息都在此類型實例中進行設置。在后續的篇幅中會有說到。

HttpSelfHostServer對象就是在SelfHost宿主環境中擔當著很重要的角色,它負責處理請求等一系列操作(因為它是WebAPI框架在SelfHost環境中的管道模型的“龍頭”),在這里只要稍作了解就行了,會在后面的管道篇幅揭開它的神秘面紗。

繼續向下看我們會看到HttpSelfHostServer對象實例中的Configuration屬性里的Routes屬性提供了對路由的注冊,這部分內容會在后面的路由篇幅講解。

再之后就是我們看到的,打開服務監聽,等待處理請求。(這里的監聽/處理請求,并不是對真正的請求進行處理,而是對已經請求被封裝好了的對象進行處理,管道篇幅中講解)

在路由注冊之后我們要新建個Web API控制器,就如同上面WebHost部分內容一樣,拷貝一份過來,不過我們這里要對控制器的代碼稍作修改,示例代碼如下:

代碼1-5

using System.Web.Http;using Common;namespace SelfHost.Controllers{    public class ProductController:ApiController    {        private static List<Product> products;        static ProductController()        {            products = new List<Product>();            products.AddRange(                new Product[]                 {                    new Product(){ ProductID="001", ProductName="牙刷",ProductCategory="洗漱用品"},                    new Product(){ ProductID="002", ProductName="《.NET框架設計—大型企業級應用框架設計藝術》", ProductCategory="書籍"}                });        }        public IEnumerable<Product> Get(string id = null)        {            return from product in products where product.ProductID == id || string.IsNullOrEmpty(id) select product;        }        public void Delete(string id)        {            products.Remove(products.First(product => product.ProductID == id));        }        public void Post(Product product)        {            products.Add(product);        }        public void Put(Product product)        {            Delete(product.ProductID);            Post(product);        }    }}

對于在代碼1-5中控制器新增的幾個Action方法,也是分別對應著Http請求方法。這樣也就是能實現增刪改查的基礎功能了。那我們還需要一個對它進行訪問的客戶端。

建立Clinet

我們再建一個控制臺應用程序命名為Clinet,并且添加如下程序集引用:

Newtonsoft.Json.dll 路徑: C:/Program Files/Microsoft ASP.NET/ASP.NET MVC 4/Packages/Newtonsoft.Json.4.5.6/lib/net40Newtonsoft.Json.dll

System.Net.Http.dll 路徑:C:/Program Files/Microsoft ASP.NET/ASP.NET MVC 4/Assemblies/ System.Net.Http.dll

System.Net.Http.Formatting.dll路徑:C:/Program Files/Microsoft ASP.NET/ASP.NET MVC 4/Assemblies/ System.Net.Http.Formatting.dll

Common.dll (項目引用)

下面我們看一下在Client項目中對SelfHost環境中的資源進行訪問的示例,示例代碼如下:

代碼1-6

using Common;using System.Net.Http;namespace Client{    class Program    {        static void Main(string[] args)        {            AsyncProcess();            Console.Read();        }        private async static void AsyncProcess()        {            HttpClient httpClient = new HttpClient();            //獲取貨品信息列表            HttpResponseMessage responseMessage =                await httpClient.GetAsync("http://localhost/selfhost/api/product");            IEnumerable<Product> products = await responseMessage.Content.ReadAsAsync<IEnumerable<Product>>();            OutputProductInfo(products);            //添加貨品            Product product = new Product()            {                ProductID = "003",                ProductName = "《ASP.NET Web API 2 框架揭秘》",                ProductCategory = "食品類"            };            await httpClient.PostAsJsonAsync<Product>("http://localhost/selfhost/api/product", product);            responseMessage = await httpClient.GetAsync("http://localhost/selfho
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久影视电视剧免费网站清宫辞电视| 在线精品高清中文字幕| 国产成人jvid在线播放| 国产精品久久久91| 久久天天躁夜夜躁狠狠躁2022| 欧美日韩一区二区三区| 亚洲精品国产综合久久| 69av在线播放| 国产91精品青草社区| 亚洲人成免费电影| 亚洲激情视频在线观看| 91在线视频九色| 欧美xxxx综合视频| 欧美激情国产高清| 中文字幕欧美专区| 国产视频精品va久久久久久| 久久久久久久久网站| 精品国产美女在线| 日韩在线视频中文字幕| 国产精品久久久久久久久久尿| 国产精品黄页免费高清在线观看| 97精品国产97久久久久久免费| 欧美激情亚洲一区| 成人激情av在线| 国产成人欧美在线观看| 国产欧美一区二区三区视频| 国产精品白嫩初高中害羞小美女| 91wwwcom在线观看| 欧美第一黄网免费网站| 日韩在线视频网| 黑人极品videos精品欧美裸| 亚洲国产91精品在线观看| 狠狠做深爱婷婷久久综合一区| 亚洲片在线观看| 欧美视频在线免费看| 日本不卡免费高清视频| 久久国产精品久久久久久| 成人免费在线网址| 国产精品久久一区主播| 亚洲人成电影网站色xx| 欧美日韩国产一中文字不卡| 国产欧美精品va在线观看| 91成人福利在线| 国产成人精品在线视频| 91探花福利精品国产自产在线| 国产精品视频中文字幕91| 色噜噜久久综合伊人一本| 97精品久久久| 国产91精品青草社区| 国产成人亚洲精品| 亚洲一区二区三区视频| 欧美性猛交99久久久久99按摩| 亚洲第一av网| 在线观看精品自拍私拍| www.午夜精品| 亚洲成人免费在线视频| 日韩在线免费视频| 欧美巨猛xxxx猛交黑人97人| 亚洲精品网站在线播放gif| 国产精品成人观看视频国产奇米| 国产手机视频精品| 中文字幕自拍vr一区二区三区| 91精品国产综合久久男男| 久久精品福利视频| 亚洲性视频网站| 亚洲视频专区在线| 狠狠色香婷婷久久亚洲精品| 欧美日韩国产综合视频在线观看中文| 亚洲a区在线视频| 亚洲区在线播放| 亚洲成年人在线播放| 国产男女猛烈无遮挡91| 91久久久久久久久| 成人av.网址在线网站| 国产91在线高潮白浆在线观看| 2021久久精品国产99国产精品| 国产噜噜噜噜噜久久久久久久久| 国产成人小视频在线观看| 久久久欧美一区二区| 国产精品欧美日韩| 日韩在线一区二区三区免费视频| 正在播放欧美一区| 亚洲国产精品国自产拍av秋霞| 日韩亚洲综合在线| 91精品国产综合久久久久久久久| 欧美大片大片在线播放| 97欧美精品一区二区三区| 深夜福利一区二区| 欧美激情va永久在线播放| 中文字幕亚洲一区| 久久久成人的性感天堂| 日韩在线观看电影| 日韩免费观看在线观看| 青青草原一区二区| 久久久久久久久久久免费精品| 国产精品视频一区国模私拍| 亚洲男人天堂2023| 日韩精品一二三四区| 久久精品电影一区二区| 亚洲人成网站777色婷婷| 久热在线中文字幕色999舞| 91欧美精品成人综合在线观看| 日产日韩在线亚洲欧美| 欧美多人乱p欧美4p久久| 亚洲国产成人在线播放| 国产成人综合久久| 亚洲高清福利视频| 亚洲最新中文字幕| 日韩欧美国产一区二区| 日韩的一区二区| 欧美性猛交xxxxx免费看| 日韩免费在线电影| 国产精品草莓在线免费观看| 日韩电影在线观看中文字幕| 91tv亚洲精品香蕉国产一区7ujn| 日韩欧美综合在线视频| 国产精品美女呻吟| 国产亚洲欧美视频| 日本在线观看天堂男亚洲| 亚洲视频精品在线| 国产欧美一区二区三区在线看| 欧美精品免费在线观看| 欧美高清视频免费观看| 亚洲国产成人久久| 国产精品一区二区久久精品| 狠狠躁18三区二区一区| 亚洲天堂网站在线观看视频| 国产欧美最新羞羞视频在线观看| 日韩精品在线视频| 视频直播国产精品| 国产精品久久久久久亚洲调教| 97av在线影院| 欧美日韩视频在线| 国产精品成人久久久久| 欧美激情网友自拍| 久久久久久高潮国产精品视| 成人精品视频99在线观看免费| 国产精品中文在线| 久久综合伊人77777蜜臀| 午夜剧场成人观在线视频免费观看| 国产成人精品av在线| 国产一区二区视频在线观看| 欧美寡妇偷汉性猛交| 欧美高清视频免费观看| 亚洲第一福利在线观看| 久久精品99久久久香蕉| 久久99热这里只有精品国产| 亚洲天堂男人的天堂| 久久人人爽人人爽人人片av高请| 久久精品电影一区二区| 日韩av免费网站| 久久天天躁夜夜躁狠狠躁2022| 成人黄色免费网站在线观看| 久久深夜福利免费观看| 欧美最顶级的aⅴ艳星| 国产v综合v亚洲欧美久久| 亚洲视频777| 久久精品国产一区二区电影| 国产精品一区电影| 欧美在线国产精品| 欧美视频专区一二在线观看| 欧美日韩中文字幕在线视频| 欧美成人黑人xx视频免费观看| 自拍偷拍亚洲欧美|