1. 程式人生 > >c# WPF客戶端調用WebAPI並轉換成List

c# WPF客戶端調用WebAPI並轉換成List

protect pre orm dsv 列表 void response () res

利用HttpClient、JsonConvert實現。

引用Newtonsoft.Json.dll和System.Net.Http。

舉個例子:從webapi中獲取設備列表。

 public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            
var list= GetEquipList<EquipModel>(1); } public List<T> GetEquipList<T>(int orgId) { string url = "http://127.0.0.1/K3Cloud/BAH.TEST.APP.PCService.EquipService.GetEquipList,BAH.TEST.APP.common.kdsvc"; var content = new FormUrlEncodedContent(new
Dictionary<string, string>() { { "orgId",orgId.ToString()} }); var resultRpt = ExecuteInterfaceByUrl(url, content); return JsonConvert.DeserializeObject<IEnumerable<T>>(resultRpt).ToList(); }
protected string ExecuteInterfaceByUrl(string url, FormUrlEncodedContent para) { var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip }; using (var http = new HttpClient(handler)) { var responseRpt = http.PostAsync(url, para).Result; var resultRpt = responseRpt.Content.ReadAsStringAsync().Result; return resultRpt; } } }
    public class EquipModel
    {
        public string FName { get; set; }
    }

EquipModel是實體類,用來轉換Json的,一般和Json格式一樣。

ExecuteInterfaceByUrl方法可以做成通用的方法,傳入webapi的地址和參數。

c# WPF客戶端調用WebAPI並轉換成List