.NET获取快递100提供的查询快递信息的方法

  #region 获取快递100提供的查询快递信息的函数
   /// <summary>
   /// 获取快递100提供的查询快递信息的函数
   /// 调用示例:
   /// Dictionary<string, string> kuaidi100 = StaticFunApp.GetKuaidi100("优速物流", "669009108318");
   ///foreach (KeyValuePair<string,string> en in kuaidi100)
   ///{
   ///Response.WriteLine(en.Key+"  "+en.Value);
   ///}
   /// </summary>
   /// <param name="typeCom">物流公司</param>
   /// <param name="epxno">快递单号</param>
   /// <returns></returns>
   public static Dictionary<string, string> GetKuaidi100(string typeCom, string epxno)
   {
       #region 获取快递信息
       string ApiKey = "XXXXXX";//请把XXXXXX修改成您在快递100网站申请的APIKey
       //string powered = "快递数据由: <a href=\"http://www.kuaidi100.com/?refer=hishop&a=e8bc69faf6f1270b\" target=\"_blank\">快递100</a> 提供";
       //技术文档地址:http://code.google.com/p/kuaidi-api/wiki/Open_API_API_URL
       Dictionary<string, string> dict = new Dictionary<string, string>();
       switch (typeCom)
       {
           case "AAE全球专递":
               typeCom = "aae";
               break;
           case "安捷快递":
               typeCom = "anjiekuaidi";
               break;
           case "安信达快递":
               typeCom = "anxindakuaixi";
               break;
           case "百福东方":
               typeCom = "baifudongfang";
               break;
           case "彪记快递":
               typeCom = "biaojikuaidi";
               break;
           case "BHT":
               typeCom = "bht";
               break;
           case "希伊艾斯快递":
               typeCom = "cces";
               break;
           case "中国东方":
               typeCom = "Coe";
               break;
           case "长宇物流":
               typeCom = "changyuwuliu";
               break;
           case "大田物流":
               typeCom = "datianwuliu";
               break;
           case "德邦物流":
               typeCom = "debangwuliu";
               break;
           case "DPEX":
               typeCom = "dpex";
               break;
           case "DHL":
               typeCom = "dhl";
               break;
           case "D速快递":
               typeCom = "dsukuaidi";
               break;
           case "fedex":
               typeCom = "fedex";
               break;
           case "飞康达物流":
               typeCom = "feikangda";
               break;
           case "凤凰快递":
               typeCom = "fenghuangkuaidi";
               break;
           case "港中能达物流":
               typeCom = "ganzhongnengda";
               break;
           case "广东邮政物流":
               typeCom = "guangdongyouzhengwuliu";
               break;
           case "汇通快运":
               typeCom = "huitongkuaidi";
               break;
           case "恒路物流":
               typeCom = "hengluwuliu";
               break;
           case "华夏龙物流":
               typeCom = "huaxialongwuliu";
               break;
           case "佳怡物流":
               typeCom = "jiayiwuliu";
               break;
           case "京广速递":
               typeCom = "jinguangsudikuaijian";
               break;
           case "急先达":
               typeCom = "jixianda";
               break;
           case "佳吉物流":
               typeCom = "jiajiwuliu";
               break;
           case "加运美":
               typeCom = "jiayunmeiwuliu";
               break;
           case "快捷速递":
               typeCom = "kuaijiesudi";
               break;
           case "联昊通物流":
               typeCom = "lianhaowuliu";
               break;
           case "龙邦物流":
               typeCom = "longbanwuliu";
               break;
           case "民航快递":
               typeCom = "minghangkuaidi";
               break;
           case "配思货运":
               typeCom = "peisihuoyunkuaidi";
               break;
           case "全晨快递":
               typeCom = "quanchenkuaidi";
               break;
           case "全际通物流":
               typeCom = "quanjitong";
               break;
           case "全日通快递":
               typeCom = "quanritongkuaidi";
               break;
           case "全一快递":
               typeCom = "quanyikuaidi";
               break;
           case "盛辉物流":
               typeCom = "shenghuiwuliu";
               break;
           case "速尔物流":
               typeCom = "suer";
               break;
           case "盛丰物流":
               typeCom = "shengfengwuliu";
               break;
           case "天地华宇":
               typeCom = "tiandihuayu";
               break;
           case "天天快递":
               typeCom = "tiantian";
               break;
           case "TNT":
               typeCom = "tnt";
               break;
           case "UPS":
               typeCom = "ups";
               break;
           case "万家物流":
               typeCom = "wanjiawuliu";
               break;
           case "文捷航空速递":
               typeCom = "wenjiesudi";
               break;
           case "伍圆速递":
               typeCom = "wuyuansudi";
               break;
           case "万象物流":
               typeCom = "wanxiangwuliu";
               break;
           case "新邦物流":
               typeCom = "xinbangwuliu";
               break;
           case "信丰物流":
               typeCom = "xinfengwuliu";
               break;
           case "星晨急便":
               typeCom = "xingchengjibian";
               break;
           case "鑫飞鸿物流":
               typeCom = "xinhongyukuaidi";
               break;
           case "亚风速递":
               typeCom = "yafengsudi";
               break;
           case "一邦速递":
               typeCom = "yibangwuliu";
               break;
           case "优速物流":
               typeCom = "youshuwuliu";
               break;
           case "远成物流":
               typeCom = "yuanchengwuliu";
               break;
           case "圆通速递":
               typeCom = "yuantong";
               break;
           case "源伟丰快递":
               typeCom = "yuanweifeng";
               break;
           case "元智捷诚快递":
               typeCom = "yuanzhijiecheng";
               break;
           case "越丰物流":
               typeCom = "yuefengwuliu";
               break;
           case "韵达快递":
               typeCom = "yunda";
               break;
           case "源安达":
               typeCom = "yuananda";
               break;
           case "运通快递":
               typeCom = "yuntongkuaidi";
               break;
           case "宅急送":
               typeCom = "zhaijisong";
               break;
           case "中铁快运":
               typeCom = "zhongtiewuliu";
               break;
           case "中通速递":
               typeCom = "zhongtong";
               break;
           case "中邮物流":
               typeCom = "zhongyouwuliu";
               break;
           default:
               dict.Add("result",typeCom+" is not supported");
               return dict;
       }
       string CacheKey = typeCom + "-" + epxno;//作为一个缓存
       object cacheobj = DataCache.GetCache(CacheKey);
       string detail = "";
       if (cacheobj == null)
       {
           string apiurl = "http://api.kuaidi100.com/api?id=" + ApiKey + "&com=" + typeCom + "&nu=" + epxno + "&show=1&muti=1&order=asc";
           //参数show    String    返回类型。0:返回json字符串,1:返回xml对象,2:返回html对象,3:返回text文本。如果不填,默认返回json字符串
           //参数muti    Stirng    返回信息数量,1:返回多行完整的信息,0:只返回一行信息。不填默认返回多行
           //参数order    Stirng    排序。desc:按时间由新到旧排列,asc:按时间由旧到新排列。不填默认返回倒序(大小不敏感)
           //Response.Write (apiurl);
           WebRequest request = WebRequest.Create(@apiurl);
           WebResponse response = request.GetResponse();
           Stream stream = response.GetResponseStream();
           Encoding encode = Encoding.UTF8;
           StreamReader reader = new StreamReader(stream, encode);
           detail = reader.ReadToEnd();
           DataCache.SetCacheSecond(CacheKey, detail, 30, TimeSpan.Zero);//查询后设置缓存
       }
       else detail = cacheobj.IsNull();
       #endregion

       #region 用xml解析获取的信息
       string kuaidi100 = detail;
       XmlDocument doc = new XmlDocument();
       doc.InnerXml = kuaidi100;

       string message = doc.SelectSingleNode("xml/message").InnerText;
       //state---0:在途中, 1:已发货, 2:疑难件, 3:已签收, 4:已退货。
       string state = doc.SelectSingleNode("xml/state").InnerText;
       switch (state)
       {
           case "0":
               state = "在途中";
               break;
           case "1":
               state = "已发货";
               break;
           case "2":
               state = "疑难件";
               break;
           case "3":
               state = "已签收";
               break;
           case "4":
               state = "已退货";
               break;
       }
       //status---0:运单暂无结果, 1:查询成功, 2:接口出现异常,408:验证码出错(仅适用于APICode url) 。
       string status = doc.SelectSingleNode("xml/status").InnerText;
       switch (status)
       {
           case "0":
               status = "运单暂无结果";
               break;
           case "1":
               status = "查询成功";
               break;
           case "2":
               status = "接口出现异常";
               break;
           case "408":
               status = "验证码出错";
               break;
       }
       dict.Add("status", status);
       dict.Add("state", state);
       if (status == "查询成功")
       {
           XmlNodeList list = doc.SelectNodes("xml/data");
           foreach (XmlNode node in list)
           {
               string time = node.SelectSingleNode("time").InnerText;//节点下的子节点名称
               string context = node.SelectSingleNode("context").InnerText;//节点下的子节点名称
               dict.Add(time, context);
           }
       }
       #endregion
       return dict;
   }
   #endregion

时间: 2024-08-31 16:17:04

.NET获取快递100提供的查询快递信息的方法的相关文章

python实现上传样本到virustotal并查询扫描信息的方法_python

本文实例讲述了python实现上传样本到virustotal并查询扫描信息的方法.分享给大家供大家参考.具体方法如下: import simplejson import urllib import urllib2 import os MD5 = "5248f774d2ee0a10936d0b1dc89107f1" MD5 = "12fa5fb74201d9b6a14f63fbf9a81ff6" #do not have report on virustotal.co

php查询whois信息的方法_php技巧

本文实例讲述了php查询whois信息的方法.分享给大家供大家参考.具体如下: 这里使用php通过查询whois信息的网站列表进行查询 function whois_query($domain) { // fix the domain name: $domain = strtolower(trim($domain)); $domain = preg_replace('/^http:\/\//i', '', $domain); $domain = preg_replace('/^www\./i',

php查询whois信息的方法

  本文实例讲述了php查询whois信息的方法.分享给大家供大家参考.具体如下: 这里使用php通过查询whois信息的网站列表进行查询 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 6

oracle如何查询初始化参数(一) 多种查询初始化参数的方法

查询初始化参数的方法很多,比如SHOW PARAMETER,或查询V$PARAMETER等,这里简单总结一下. 这一篇简单介绍多种查询初始化参数的方法. 首先初始化参数的设置的方法就有很多种:可以通过ALTER SYSTEM SET SCOPE = MEMORY的方式仅设置内存的修改,也可以通过ALTER SYSTEM SET SCOPE = SPFILE只修改SPFILE的值,当然也可以同时修改SPFILE和MEMORY中的设置.还有一种初始化参数可以设置延迟生效,也就是说这个修改只对以后连接

Java获取代码中方法参数名信息的方法_java

前言 大家都知道随着java8的使用,在相应的方法签名中增加了新的对象Parameter,用于表示特定的参数信息,通过它的getName可以获取相应的参数名.即像在代码中编写的,如命名为username,那么在前台进行传参时,即不需要再编写如@Parameter("username")类的注解,而直接就能进行按名映射. 如下的代码参考所示: public class T { private interface T2 { void method(String username, Stri

PHP查询快递信息的方法

 这篇文章主要介绍了PHP查询快递信息的方法,实例分析了通过第三方平台接口查询快递信息的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP查询快递信息的方法.分享给大家供大家参考.具体如下: 这里使用快递100物流查询 官方文档中只能返回html的接口 也可以返回json php代码如下:   代码如下: /** * @desc 获取快递信息 * @param string $code 快递编码 * @param string $invoice 快递单号 * @ret

PHP查询快递信息的方法_php技巧

本文实例讲述了PHP查询快递信息的方法.分享给大家供大家参考.具体如下: 这里使用快递100物流查询 官方文档中只能返回html的接口 也可以返回json php代码如下: 复制代码 代码如下: /**  * @desc 获取快递信息  * @param string $code 快递编码  * @param string $invoice 快递单号  * @return mixed $result(       'status','info','state','data'    )  */ f

中外运敦豪拟转让全一快递100%股权

陈姗姗 尽管国内快递市场的发展潜力巨大,但对于全球国际快递巨头来说,其在中国的拓展优势,依然只局限在国际快递市场领域. <第一财经日报>记者昨日从多位知情人士处独家获悉,两年前收购了民营快递公司全一快递的中外运敦豪国际航空快件有限公司(下称"中外运敦豪"),正在与一家民营企业友和道通洽谈转让全一快递100%的股权,目前相关程序已基本接近尾声. 中外运敦豪,是传统的国有货代巨头中外运集团与国际快递巨头DHL为共同拓展中国的国际快递市场成立多年的合资公司,收购全一快递,原本是双

众包物流服务提供商人人快递获得了1500万美元A轮融资

摘要: 众包物流服务提供商人人快递获得了1500万美元A轮融资.这轮融资的主要用途是用于人才引进和运营投入.人人快递成立于2011年5月,他们的Slogon是人人都是快递员. 这一模式在通过众 众包物流服务提供商人人快递获得了1500万美元A轮融资.这轮融资的主要用途是用于人才引进和运营投入.人人快递成立于2011年5月,他们的Slogon是"人人都是快递员". 这一模式在通过众包增加效率降低成本的同时也遭遇政策风险,有悖于国家快递管理办法规定.但是CEO谢勤表示:"我们不是