.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
.NET获取快递100提供的查询快递信息的方法相关推荐
- 快递100企业版物流查询API使用流程
快递100企业版物流查询API现在有150单免费测试额度(100单物流查询以及50单电子面单打印),请参考以下指引进行测试. 调试工具.技术文档和模板配置: 登录企业管理后台( https://api ...
- 快递100企业版物流快递查询接口(API) 接口文档-详细加长版
快递100物流查询接口现已支持1200家常用的快递及物流公司单号查询.快递网点电话查询.快递价格查询.快递网上寄件服务.近期快递100物流查询接口推出针对部分B2C商城以及移动手机应用需要快递单号查询 ...
- 快递鸟平台,查询快递信息。已脱坑
快递鸟平台,查询快递信息.已脱坑 写在前面 技术更新迭代,但总能有迹可循. 无休止的造轮子,早已让人精疲力竭. 自己跳过的坑,分享最终的成果,只为让痛苦不再重复. 一 背景 商城项目中,需要根据订单号 ...
- 订单快递单号及查询快递进度
订单快递单号及查询快递进度 何须非要使用快递100,爱查等接口来获得快递进度信息?何必非要给自己的网站带上紧箍咒?为何不将选择权给自己的网站客户? 该插件可以: 1. 网站管理员在后台增删改管理自己所 ...
- python 写脚本 获取qq好友地理位置_Python获取统计自己的qq群成员信息的方法
这篇文章主要介绍了Python获取统计自己的qq群成员信息的方法,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 首先说明一下需要使用的工具以及技术:python3 + ...
- python抓取qq群消息_Python获取统计自己的qq群成员信息的方法
首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己的qq群成员信息,自己必须是群主或者管理员, ...
- 基于快递100 写的,快递查询快捷嵌入商城项目
声明:此嵌入方式基于快递100 api 开发而成,不依赖快递100授权,如有侵权行为,请留言,我会尽快删除. 1.如何不依赖api授权,我参考以下网站: 电商网站接入快递查询 2.接下来上代码:kua ...
- PHP快递100的物流接口快递单号查询
查询结果: 后台代码: public $com = '圆通速递'; public $num = '806212025572998025'; $this->searchKuaiDi($com,$n ...
- 快递100下单未知错误?快递100寄件/同城配送接口FAQ
寄件类 账号注册后商家寄件接口显示下单失败,是否可以调试? 1.商家寄件接口无接口费用,充值费用为运费,在无充值情况下无法调用接口,最低充值为100元: 2.商家寄件接口下单后为预扣费用,取消订单会返 ...
最新文章
- FDATOOL设计数字滤波器
- Hyperledger Fabric 排序服务核心原理和工作过程
- 清华本硕男,月入5W征婚引群嘲“普通却自信”!本人回应了……
- PrincipleCTEbook
- 在Docker中运行asp.net core 跨平台应用程序
- joo工作流_不要错过使用jOOλ或jOOQ编写Java 8 SQL单行代码的机会
- python王者归来 pdf_OpenStack开源云:王者归来 PDF 下载
- c语言转换为python语言_python和c语言
- RabbitMq分布式事务解决方案第二篇
- 【操作系统】输入输出系统(上)-思维导图
- 昨天在被窝里玩手机游戏到深夜,自己写的“扫雷”,一个字:好玩。
- 关于WIN10下NVIDIA安装驱动后没有控制面板的解决办法
- 【读书笔记】-《软件测试的艺术》
- thinkphp 运行机制和优缺点
- sessionStorage 、localStorage 和 cookie
- 3D深度学习总结(聚焦3D深度学习的现在于未来)
- 计算机病毒教学评课,计算机病毒评课稿.doc
- java前端显示统计报表数据_强大的报表前端展现功能
- 你该知道的 Oracle 认证那些事儿(免费 赠送最新OCP题库)
- appium向右滑动