C# - 製作ASP.NET Web API專案
這次想要在上次的MVC 4專案(https://lucrelin.blogspot.com/2019/08/c-aspnet-mvc4.html)中增加Web API服務。
今天文字感覺一直寫得卡卡的QQ
今天文字感覺一直寫得卡卡的QQ
先大致說明Web服務小歷史:
ASMX Web服務支援HTTP之上的SOAP,但不易支援不需互動操作(因而也不需要SOAP)的簡單Web服務。
==> WCF建立Web服務。
==> ASP.NET Web API捨棄與應用程式互動操作的SOAP,可快速建立簡單的HTTP Web服務(Web API)。不回傳SOAP的XML,而是回傳JSON。如果要求其他傳輸或格式類型的其他Web服務,仍可使用WCF。
因為不打算寫一篇專門的WCF文章,這邊大概截圖做的結果:
使用預設的WCF專案,之後到該服務的網址。此時可用C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\WcfTestClient.exe(一般visual studio可從工具>外部工具找到,但我的版本找不到,因而直接到檔案路徑打開)得到SOAP測試結果如下:
這邊先提個做Web API小測試時遇到的問題:建立一個MVC 4,選擇Web API的預設專案,直接試跑,發現一開始就出錯如下:
以上主要錯誤訊息為「無法載入檔案或組件 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' 或其相依性的其中之一。 找到的組件資訊清單定義與組件參考不符。 (發生例外狀況於 HRESULT: 0x80131040)]」
當去專案的「參考」查看時,發現Newtonsoft.Json的dll版本是4.5.0.0,但是錯誤訊息最後是找版本6.0.0.0,
因而參考以上連結,將專案中的web.config中的bindingRedirect部分改為:
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0"/>
解決報錯。
最後終於進入正題,先給Web API的code:
這次推git的方式突然覺得不大好,截圖提醒下次別下git add *:
一開始用GET得到資料時,得到的意外的XML:
因為ASP.NET Web API內建支援 JSON 與 XML 兩種輸出格式,並依瀏覽器端送出的 Accept 標頭自動決定回應的內容格式,在沒有指定或查無格式的情況下,會預設回應 JSON 格式的內容。因為 Chrome預設會發送 XML 的 Accept,所以 Web API 回傳 XML。
以下有兩種解法,但皆是對「Web API 的 XmlFormatter 所支援的媒體類型(MediaType)做修正」:
修正後就可在畫面看到GET後的JSON結果:
另外,POST的發送需靠Fiddler。先運行專案,之後在Fiddler裡的Composer中設定好,按下Execute。之後在左側欄選擇發送完的結果,雙擊後在右側得到結果:
最後可到Guestbook專案首頁看到該次新增結果:
p.s.用Fiddler發送POST詳細內容可看:https://www.cnblogs.com/101718qiong/p/8118033.html
Wynn Hotel & Casino, Las Vegas - Mapyro
回覆刪除Welcome to Wynn Hotel & Casino, Las Vegas. 3131 Las 논산 출장샵 Vegas 상주 출장샵 Blvd S. The Strip, Las Vegas, 경산 출장안마 NV 89109. Get 김포 출장마사지 Directions · (702) 770-7055. Call Now · More Info. Hours, Accepts 광주광역 출장샵 Credit Cards,