zoukankan      html  css  js  c++  java
  • c# WPF客户端调用WebAPI并转换成List

    利用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的地址和参数。

  • 相关阅读:
    [CF451E] Devu and Flowers
    [CF1038E] Maximum Matching
    [CF825E] Minimal Labels
    [CCPC2020绵阳L] Lottery
    [CCPC2020绵阳K] Knowledge is Power
    [CCPC2020绵阳J] Joy of Handcraft
    [CCPC2020绵阳G] Game of Cards
    [CCPC2020绵阳D] Defuse the Bombs
    [CF1082E] Increasing Frequency
    [CF301B] Yaroslav and Time
  • 原文地址:https://www.cnblogs.com/czly/p/10406909.html
Copyright © 2011-2022 走看看