C# 请求Web Api 接口,返回的json数据直接反序列化为实体类

须要的引用的dll类:

Newtonsoft.Json.dll、System.Net.Http.dll、System.Net.Http.Formatting.dll



Web Api接口为GET形式:

 public static CstyleCmappListRespDTO GetCstyleCmappList(string cstylename, string cmappgname)
        {
            CstyleCmappListRespDTO RespDTO = new CstyleCmappListRespDTO();
            var url = string.Empty;
            try
            {
                url = RequestUrl + "/dw/get_cstylecmappg_info_dw?

id={0}&key={1}×tamp={2}&cstylename={3}&cmappgname={4}"; url = string.Format(url, id, key, DateTime.Now.ToString("yyyyMMddHHmmss"), cstylename, cmappgname); var httpClient = new HttpClient(); HttpResponseMessage response = httpClient.GetAsync(new Uri(url)).Result; RespDTO = response.Content.ReadAsAsync<CstyleCmappListRespDTO>().Result; } catch (Exception ex) { } return RespDTO; }


Web Api接口为POST形式:

public static FlightsResponse QueryFlightPost(FlightQueryRequest ReqDTO)
        {
            FlightsResponse FlightsRespDTO = new FlightsResponse();
            try
            {
                string requestDTO = JsonConvert.SerializeObject(ReqDTO);
                MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
                HttpContent httpContent = new ObjectContent<FlightQueryRequest>(ReqDTO, jsonFormatter);
                var url = RequestUrl + "/QueryFlight";
                var httpClient = new HttpClient(new RequestHandler() { InnerHandler = new HttpClientHandler() });
                httpClient.Timeout = TimeSpan.FromMinutes(3);
                var responseJson = httpClient.PostAsync(url, httpContent).Result;
                FlightsRespDTO = responseJson.Content.ReadAsAsync<FlightsResponse>().Result;
                
            }
            catch (Exception)
            {
                FlightsRespDTO = new FlightsResponse();
            }
            return FlightsRespDTO;
        }







posted @ 2017-07-24 14:32  lytwajue  阅读(2533)  评论(0编辑  收藏  举报