麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

ASP.NETWebApi實(shí)踐系列(二)Get/Post方式調(diào)用WebApi

2019-11-14 14:12:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

    本文給出Get/Post方式訪問(wèn)Web Api的幫助方法,對(duì)于Put/Delete方式的調(diào)用跟Post調(diào)用類(lèi)似。

    一、Web Api調(diào)用幫助類(lèi)

    下面給出Web Api調(diào)用幫助類(lèi)的代碼:

  1 using System;  2 using System.Collections.Generic;  3 using System.Net.Http;  4 using System.Net.Http.Headers;  5 using System.Text;  6 using System.Web;  7   8 namespace TestApi  9 { 10     /// <summary> 11     /// WebApi訪問(wèn)幫助類(lèi) 12     /// </summary> 13     public class WebApiHepler 14     { 15         /// <summary> 16         /// 生成最終URL 17         /// </summary> 18         /// <param name="baseUrl">基準(zhǔn)URL(不含查詢(xún)串)</param> 19         /// <param name="dictParam">查詢(xún)參數(shù)字典</param> 20         /// <returns>最終URL</returns> 21         PRivate static string GetLastUrl(string baseUrl, Dictionary<string, string> dictParam) 22         { 23             var sbUrl = new StringBuilder(baseUrl); 24             if (dictParam != null && dictParam.Count > 0) 25             { 26                 sbUrl.Append("?"); 27                 int index = 0; 28                 foreach (var item in dictParam) 29                 { 30                     sbUrl.Append(string.Format("{0}={1}", item.Key, 31                         HttpUtility.UrlEncode(item.Value, Encoding.UTF8))); 32                     if (index < dictParam.Count - 1) 33                     { 34                         sbUrl.Append("&"); 35                     } 36                     index++; 37                 } 38             } 39             var url = sbUrl.ToString(); 40             return url; 41         } 42  43         /// <summary> 44         /// GET方式調(diào)用Web Api 45         /// </summary> 46         /// <param name="baseUrl">基準(zhǔn)URL(不含查詢(xún)串)</param> 47         /// <param name="dictParam">查詢(xún)參數(shù)字典</param> 48         /// <param name="result">返回?cái)?shù)據(jù)(Json格式)</param> 49         /// <param name="errMsg">出錯(cuò)信息</param> 50         /// <returns>成功與否</returns> 51         public static bool Get(string baseUrl, Dictionary<string, string> dictParam, out string result, out string errMsg) 52         { 53             errMsg = string.Empty; 54             result = string.Empty; 55             try 56             { 57                 using (var client = new HttpClient()) 58                 { 59                     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 60                     var url = GetLastUrl(baseUrl, dictParam); 61                     var tmpResult = client.GetAsync(url).Result; 62                     tmpResult.EnsureSuccessStatusCode(); 63                     result = tmpResult.Content.ReadAsStringAsync().Result; 64                     return true; 65                 } 66             } 67             catch (Exception ex) 68             { 69                 errMsg = ex.Message; 70                 return false; 71             } 72              73         } 74  75         /// <summary> 76         /// POST方式調(diào)用Web Api 77         /// </summary> 78         /// <param name="baseUrl">基準(zhǔn)URL(不含查詢(xún)串)</param> 79         /// <param name="dictParam">查詢(xún)參數(shù)字典</param> 80         /// <param name="parseData">傳遞實(shí)體數(shù)據(jù)(Json格式)</param> 81         /// <param name="result">返回?cái)?shù)據(jù)(Json格式)</param> 82         /// <param name="errMsg">出錯(cuò)信息</param> 83         /// <returns>成功與否</returns> 84         public static bool Post(string baseUrl, Dictionary<string, string> dictParam, string parseData, out string result, out string errMsg) 85         { 86             errMsg = string.Empty; 87             result = string.Empty; 88             try 89             { 90                 using (var client = new HttpClient()) 91                 { 92                     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 93                     var url = GetLastUrl(baseUrl, dictParam); 94                     var content = new StringContent(parseData, Encoding.UTF8); 95                     content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 96                     var tmpResult = client.PostAsync(url, content).Result; 97                     tmpResult.EnsureSuccessStatusCode(); 98                     result = tmpResult.Content.ReadAsStringAsync().Result; 99                     return true;100                 }101             }102             catch (Exception ex)103             {104                 errMsg = ex.Message;105                 return false;106             }107         }108     }109 }

    二、部分說(shuō)明

    對(duì)以上的代碼作部分說(shuō)明:

  • GetLastUrl方法用于根據(jù)基準(zhǔn)URL和查詢(xún)參數(shù)字典獲取最終URL
  • client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));這句代碼表示希望服務(wù)返回Json字符串。
  • content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 表示以Json格式傳遞實(shí)體內(nèi)容。

 


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美日韩亚洲精品一区二区三区 | 国产色视频在线观看免费 | 精品国产一区二区三区四 | 色视频欧美| 依依成人精品视频 | 国产午夜精品一区二区三区免费 | 精品人成 | 日韩欧美中文字幕视频 | 激情小说色 | 日本在线播放一区二区三区 | 日本一区二区视频在线观看 | 免费激情网址 | 国产亚洲精品综合一区91 | 91短视频在线播放 | 999插插插 | 国产 视频 一区二区 | 一级成人毛片 | 国产一级小视频 | 91短视频在线播放 | 久久免费视频一区二区三区 | 黄色网址在线免费播放 | 国产女厕一区二区三区在线视 | 久久久www成人免费精品 | 免费a级作爱片免费观看欧洲 | 九九久久视频 | 视频一区二区久久 | 国产一级在线观看视频 | 羞羞答答影院 | 免费放黄网站在线播放 | 久久久久久久一区 | 久色免费 | 福利在线影院 | 欧美成人小视频 | 成人店女老板视频在线看 | 国产精品久久久久久久久久大牛 | 粉嫩粉嫩一区二区三区在线播放 | 欧美精品免费一区二区三区 | 中文字幕在线看第二 | 亚洲小视频在线观看,com | 99精品视频在线看 | 视频在线中文字幕 |