c#WPFクライアントはWebAPIを呼び出し、Listに変換する

4134 ワード

HttpClient,JsonConvertで実現する.
ニュースを引用するJson.dllとSystemNet.Http.
例を挙げると、webapiからデバイスリストを取得します.
 public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var list= GetEquipList(1);
        }

        public List GetEquipList(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>(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のアドレスとパラメータを伝達する汎用的なメソッドとすることができる.