C#_Express-ickd接口
爱查快递接口使用
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Linq;
using Newtonsoft.Json; namespace ClassLibrary
{
//快递查询
public static class Express
{
#region ickd.com快递查询接口Key和快递公司
private const string ickdKEY = "";
private const string ickdSecret = "";
private static Dictionary<string, string> ickdComDic = new Dictionary<string, string>() {
{"顺丰快递","shunfeng"},
{"申通快递","shentong"},{"圆通快递","yuantong"},{"中通快递","zhongtong"},{"韵达快递","yunda"},
{"大田物流","datian"},{"德邦物流","debang"},{"D速快递","dsu"},{"EMS快递","ems"},{"华宇物流","huayu"},
{"汇通快递","huitong"},{"佳吉快运","jiaji"},{"京广快递","jingguang"},{"龙邦快递","longbang"},
{"天天快递","tiantian"},{"新邦物流","xinbang"},{"优速快递","yousu"},{"宅急送快递","zhaijisong"}
};
/// <summary>
/// 获取快递公司集合
/// </summary>
public static List<string> idkdGetCom = ickdComDic.Keys.ToList<string>();
#endregion #region 使用ickd.com接口获取快递信息
/// <summary>
/// 查询快递
/// </summary>
/// <param name="com">快递</param>
/// <param name="nu">快递单号</param>
/// <param name="order">排序顺序</param>
/// <param name="type">返回值类型</param>
/// <param name="encode">编码方式</param>
/// <returns></returns>
public static ickdModel GetICKDModel(string com, string nu, ickdOrderType order = ickdOrderType.desc, ickdDateType type = ickdDateType.json, ickdEncodeType encode = ickdEncodeType.gbk)
{
try
{
if (!ickdComDic.ContainsKey(com)) { return null; }//判断快递公司是否合法
StringBuilder sb = new StringBuilder();
sb.AppendFormat("http://api.ickd.cn/?id={0}&secret={1}&com={2}&nu={3}&type={4}&ord={5}&encode={6}", ickdKEY, ickdSecret, ickdComDic[com], nu, type, order, encode); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sb.ToString());//向url所在的服务器发送一个请求
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //获得服务器的回应
string charset = response.CharacterSet;
Encoding reEncode = Encoding.GetEncoding(charset);
TextReader text = new StreamReader(response.GetResponseStream(), reEncode);//初始化流
string htmlContent = text.ReadToEnd();//获得网页内容
response.Close(); ickdModel model = JsonConvert.DeserializeObject<ickdModel>(htmlContent);
return model.status != ? model : null;
}
catch (Exception)
{
return null;
}
}
#endregion
} #region ickd枚举参数
public enum ickdDateType
{
json, html, text, xml
}
public enum ickdOrderType
{
desc, asc
}
public enum ickdEncodeType
{
gbk, utf8
}
#endregion #region 快递信息
public class ickdModel
{
/// <summary>
/// 查询结果状态[0查询失败/1正常/2派送中/3已签收/4退回/5其他问题]
/// </summary>
public int status { get; set; }
/// <summary>
/// 错误消息
/// </summary>
public string message { get; set; }
/// <summary>
/// 进度
/// </summary>
public List<ickdInfoModel> data { get; set; }
/// <summary>
/// 快递单号
/// </summary>
public string mailNo { get; set; }
/// <summary>
/// 快递公司英文代码
/// </summary>
public string expSpellName { get; set; }
/// <summary>
/// 快递公司中文名
/// </summary>
public string expTextName { get; set; }
/// <summary>
/// 最后更新时间
/// </summary>
public string update { get; set; }
/// <summary>
/// 缓存时间
/// </summary>
public string cache { get; set; }
/// <summary>
/// 排序
/// </summary>
public string ord { get; set; } }
#endregion #region 快递处理信息
public class ickdInfoModel
{
/// <summary>
/// 处理时间
/// </summary>
public string time { get; set; }
/// <summary>
/// 处理信息
/// </summary>
public string context { get; set; }
}
#endregion
}
ickd.com
C#_Express-ickd接口的更多相关文章
- 快递查询api(多接口方案)
/** 本环境使用php+smarty,结合两种快递api调取快递数据 * 说明,先快递鸟调取数据,失败后再调取快递网的数据* 快递鸟 http://www.kdniao.com 快递网 http:/ ...
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
- 12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- java基础_集合List与Set接口
List接口继承了Collection的方法 当然也有自己特有的方法向指定位置添加元素 add(索引,添加的元素); 移除指定索引的元素 remove(索引) 修改指定索引的元素 set ...
- 【WCF】自定义错误处理(IErrorHandler接口的用法)
当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...
- PHP以接口方式实现多重继承(完全模拟)--学习笔记
1.UML类图: 2.PHP代码: <?php /** * Created by PhpStorm. * User: andy * Date: 16-11-23 * Time: 下午7:57 ...
随机推荐
- trigger中insert动作的测试
Trigger为默认事务 测试环境:sql server 2008 r2 对象:DevList表 目标:确定trigger在数据库中有数据变化时是一次一批一批执行还是,按每条触发执行 测试需求: De ...
- 2012-2013 ACM-ICPC Northeastern European Regional Contest (NEERC 12)
Problems # Name A Addictive Bubbles1 addictive.in / addictive.out 2 s, 256 MB x438 B Blin ...
- [Math & Algorithm] 拉格朗日乘数法
拉格朗日乘数法(Lagrange Multiplier Method)之前听数学老师授课的时候就是一知半解,现在越发感觉拉格朗日乘数法应用的广泛性,所以特意抽时间学习了麻省理工学院的在线数学课程.新学 ...
- liunx学习(一):linux下目录操作大全
Linux C函数之文件及目录函数(全):http://blog.sina.com.cn/s/blog_695e489c01013ldd.html linux目录操作发:http://www.cnbl ...
- BZOJ 4581: [Usaco2016 Open]Field Reduction
Description 有 \(n\) 个点,删掉三个点后,求最小能围住的面积. Sol 搜索. 找出 左边/右边/上边/下边 的几个点枚举就可以了. 我找了 12 个点,统计一下坐标的个数,然后找到 ...
- wampServer图标为橙色无法启动原因之一
前段时间,自己在本地做了一个WordPress的网站,利用wampserver配置的,后来突然无法启动了. 经过仔细查找发现是因为之前装了sql server,导致wampServer无法启动,那么怎 ...
- PHPStorm XDebug的安装
环境: 我的系统: 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linu ...
- 在asp.net mvc模式中使用PartialView返回部分HTML
PartialView(返回HTML(局部)) 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewResultBase 同时它还有个兄弟PartialViewRes ...
- MysqlWorkbench连接远程数据
- 倒计时simple 天时分秒
new Date()new Date(yyyy,mth,dd,hh,mm,ss); //月从0计数 .getTime()返回的是一个long型的毫秒数 毫秒转成 秒 分 时 天 <div id= ...