• webapi调用


    1.

    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ToolClass.CargoEntity.CargoBillEntity
    {
        public class ExcResultToJson
        {
            /// <summary>
            /// 是否执行成功
            /// </summary>
            public bool IsSuccess = false;
    
            /// <summary>
            /// 错误信息
            /// </summary>
            public string ErrMessage = string.Empty;
    
            /// <summary>
            /// 返回的数据
            /// </summary>
            public string DataStr = string.Empty;
    
            public ExcResultToJson(bool isSuccess, string errMessage, object data)
            {
                this.IsSuccess = isSuccess;
                this.ErrMessage = errMessage;
                this.DataStr = JsonSerialize(data);
            }
    
            public override string ToString()
            {
                return JsonSerialize(this);
            }
    
            public T GetData<T>()
            {
                return JsonDeserialize<T>(this.DataStr);
            }
    
            /// <summary>
            /// 序列化对象
            /// </summary>
            /// <param name="value"></param>
            /// <returns></returns>
            public static string JsonSerialize(object value)
            {
                if (value == null)
                    return null;
                Type type = value.GetType();
    
                JsonSerializerSettings json = new JsonSerializerSettings();
    
                json.NullValueHandling = NullValueHandling.Ignore;
                json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace;
                json.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
                json.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
    
                if (type == typeof(DataTable))
                    json.Converters.Add(new DataTableConverter());
                else if (type == typeof(DataSet))
                    json.Converters.Add(new DataSetConverter());
    
                IsoDateTimeConverter s = new IsoDateTimeConverter();
                s.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
                json.Converters.Add(s);
                return JsonConvert.SerializeObject(value, Formatting.None, json);
            }
    
            /// <summary>
            /// 反序列化字段
            /// </summary>
            /// <param name="jsonText">json字符串</param>
            /// <param name="valueType">对象类型</param>
            /// <returns></returns>
            public static T JsonDeserialize<T>(string jsonText)
            {
                if (jsonText == null)
                { return default(T); }
    
                JsonSerializerSettings json = new JsonSerializerSettings();
                json.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
                json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace;
                json.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
                json.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
    
                return JsonConvert.DeserializeObject<T>(jsonText, json);
            }
        }
    }

    2.

        public List<FocInfoEntity> GetFightData(string lg, string flightDate, string airline, string flightno, string dep, string arr, ref string strerrmsg)
            {
                String strairline, strflightno, strdepart, strdest;
                DateTime dksrq, djsrq;
                if (string.IsNullOrEmpty(flightDate))
                {
                    strerrmsg = lg != "EN" ? "请输入航班日期!" : "Please input flight date !";
                    return null;
                }
                if (string.IsNullOrEmpty(flightno)&& string.IsNullOrEmpty(dep) && string.IsNullOrEmpty(arr))
                {
                    strerrmsg = lg != "EN" ? "航班号、始发站、目的站不能都为空!" : "  You must input one from flight number, departure station and destination station !";
                    return null;
                }
                try
                {
                    dksrq = Convert.ToDateTime(flightDate);
                    djsrq = Convert.ToDateTime(flightDate);
                }
                catch (Exception e)
                {
                    return null;
                }
                
                string sdksrq = dksrq.ToShortDateString();
                dksrq = Convert.ToDateTime(sdksrq);
                djsrq = Convert.ToDateTime(sdksrq);
                strairline = airline;// "MF";
                strflightno = airline+flightno;// "8575";
                strdepart = dep;//"厦门";
                strdest = arr;// "北京";
                strerrmsg = string.Empty;
                try
                {
                     
                    var FlightSearchUrl = System.Configuration.ConfigurationManager.AppSettings.Get("FocUrl");
                    string esbHeaderName = ESBHelper.getEsbHeaderName();
                    RestClient restClient = new RestClient(FlightSearchUrl);
                    var restRequest = new RestRequest("/marketing/flight", Method.GET);
                    FocRequestInfo r = new FocRequestInfo();
                    r.departureDate = dksrq.ToString("yyyy-MM-dd");
                    r.flightNo = strflightno;
                    r.orig = strdepart;
                    r.dest = strdest;
                    r.includeCancelledFlight = false;
                    restRequest.AddObject(r);
                    var response = restClient.Execute(restRequest);
                    string s = response.Content;
                    JArray arrs = ExcResultToJson.JsonDeserialize<JArray>(s);
                    List<FocInfoEntity> focentitylist = new List<FocInfoEntity>();
                    foreach (var obj in arrs)
                    {
                        try
                        {
                            
                            FocInfoEntity focentity = new FocInfoEntity();
                            focentity.FLIGHT_DATE = obj["departureDate"].ToString();
                            focentity.FLIGHT_NO = obj["flightDesignator"]["airlineCode"].ToString() + obj["flightDesignator"]["flightNumber"].ToString();
                            JArray routes = ExcResultToJson.JsonDeserialize<JArray>(obj["route"].ToString());//.ToString().Replace(""", "").Replace("[", "").Replace("]", "").Replace("
    ", "").Replace(" ", "").Split(new char[] { ',' });
                            if (routes.Count >= 2)
                            {
                                focentity.DEPARTURE_AIRPORT = routes[0].ToString();
                                focentity.ARRIVAL_AIRPORT = routes[1].ToString();
                            }
                            JArray arrFlightLegs = ExcResultToJson.JsonDeserialize<JArray>(obj["flightLegs"].ToString());
                            if (arrFlightLegs.Count > 0)
                            {
                                try
                                {
                                    focentity.AC_TYPE = arrFlightLegs[0]["aircraft"]["aircraftType"]["model"].ToString();
                                    focentity.AC_REG = arrFlightLegs[0]["aircraft"]["registrationNum"].ToString();
                                }
                                catch
                                {
                                }
                                try
                                {
                                    focentity.STD = ConvertToTimeString(arrFlightLegs[0]["departure"]["takeOffAt"]["estimated"].ToString());
                                    focentity.ATD = ConvertToTimeString(arrFlightLegs[0]["departure"]["takeOffAt"]["actual"].ToString());
                                }
                                catch
                                {
                                }
                                try
                                {
                                    focentity.STA = ConvertToTimeString(arrFlightLegs[0]["arrival"]["landAt"]["estimated"].ToString());
                                    focentity.ATA = ConvertToTimeString(arrFlightLegs[0]["arrival"]["landAt"]["actual"].ToString());
                                }
                                catch
                                {
                                }
                            }
                            focentitylist.Add(focentity);
                            if (routes.Count >= 3) //二程航班信息 routes["XNN","PEK","AMS"]
                            {
                                FocInfoEntity focentity2 = new FocInfoEntity();
                                focentity2.FLIGHT_DATE = obj["departureDate"].ToString();
                                focentity2.FLIGHT_NO = obj["flightDesignator"]["airlineCode"].ToString() + obj["flightDesignator"]["flightNumber"].ToString();
                                focentity2.DEPARTURE_AIRPORT = routes[1].ToString();
                                focentity2.ARRIVAL_AIRPORT = routes[2].ToString();
                                if (arrFlightLegs.Count >= 2)
                                {
                                    try
                                    {
                                        focentity2.AC_TYPE = arrFlightLegs[1]["aircraft"]["aircraftType"]["model"].ToString();
                                        focentity2.AC_REG = arrFlightLegs[1]["aircraft"]["registrationNum"].ToString();
                                    }
                                    catch
                                    {
                                    }
                                    try
                                    {
                                        focentity2.STD = ConvertToTimeString(arrFlightLegs[1]["departure"]["takeOffAt"]["estimated"].ToString());
                                        focentity2.ATD = ConvertToTimeString(arrFlightLegs[1]["departure"]["takeOffAt"]["actual"].ToString());
                                    }
                                    catch
                                    {
                                    }
                                    try
                                    {
                                        focentity2.STA = ConvertToTimeString(arrFlightLegs[1]["arrival"]["landAt"]["estimated"].ToString());
                                        focentity2.ATA = ConvertToTimeString(arrFlightLegs[1]["arrival"]["landAt"]["actual"].ToString());
                                    }
                                    catch
                                    {
                                    }
                                }
                                focentitylist.Add(focentity2);
                            }
                        }
                        catch
                        {
                        }
                    }
                    return focentitylist;
                }
                catch (Exception e)
                {
                    strerrmsg = e.Message;
                    return null;
                }
    
            }

    需要注意为null的情况

  • 相关阅读:
    c# 导出text 文本文件
    c# 检查目录,当指定目录不存在时建立目录
    c# 控制台应用程序批量修改文件夹下的后缀名(包括子文件夹)
    oracleHelper 操作帮助类
    Sqlite操作帮助类
    oracle 备份数据库,导出数据库
    nehibernet .net注意事项
    一般处理程序多图片上传(可以更多)
    一般处理程序多图片上传(3个文件)
    我的Python分析成长之路4
  • 原文地址:https://www.cnblogs.com/mengxiangzhi/p/9361087.html
Copyright © 2020-2023  润新知