用c#查询各快递物流信息
前面介绍过《用快递100接口查询各快递物流信息》,里面用的是API接口,但有些快递不支持这种方式,本文介绍的HtmlAPI支持所有快递公司。
支持包括EMS、邮政、顺丰和申通在内的所有公司,稳定性强、速度快,易开发、安全性高 。
1、API请求地址
http://www.kuaidi100.com/applyurl?key=[]&com=[]&nu=[]
(配参数时请先将 中括号去掉)
2、传入参数说明
参数 |
是否必需 |
说明 |
key |
是 |
快递100的授权key,如果已有快递100的key,可以直接使用已有的;如果还没有申请,请点击 快递查询API进行申请。 |
com |
是 |
快递公司编码见下表 |
nu |
是 |
快递单号 |
3、支持的公司
HtmlAPI支持快递100所有支持的公司,以下只罗列最常见的几个快递,更多的编码请点击《用快递100接口查询各快递物流信息》查看
分类 |
快递公司代码 |
公司名称 |
E |
||
ems |
ems |
|
emsguoji |
ems国际件 |
|
S |
||
shentong |
伸通 |
|
shunfeng |
顺丰 |
|
Y |
||
youzhengguonei |
中国邮政国内包裹/挂号信/国内小包大包 |
|
youzhengguoji |
中国邮政国际包裹/挂号信/国外小包大包 |
4、返回结果说明:
提交请求后,快递100会给您返回一个可以看到结果的url地址,如:http://www.kuaidi100.com/kuaidiresult?id=23 ,您直接访问或用iframe页调用该url(调用方法见后面第四章),即可以看到结果。效果:
因为EMS、顺丰和申通偶尔会不稳定, 不稳定时会先显示验证码 (如下图所示),所以请勿直接将这个页面直接解析成JSON等形式,否则会出错!
5、整体使用流程
第一步,后台创建链接,调用:http://www.kuaidi100.com/applyurl?key=[]&com=[]&nu=[] ,调用后系统会返回一个url地址,如:http://www.kuaidi100.com/kuaidiresult?id=23 。
第二步:在要显示结果的页面添加一个iframe标签,将上述结果url地址传入该iframe标签的的src值,即可在该页面查看到结果(如果要实现系统自动地将结果url传入iframe标签的src,请参考下面第五章),iframe代码示范:
<iframe name="kuaidi100" src="结果url地址" width="600" height="380" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>
如果要实现系统自动地将结果url传入iframe标签的src,请参考下面
6、 C#示范
首先加一个iframe, 取到数据后,填充它
<iframe class="address_b order_zhui" height="260px" width="100%" id="kdFrame"></iframe>
$.get("Get.aspx", { wid: wid, openid: openid, rid: rid },
function (data) {
$("#bhao").hide();
if (data != null) {
$("#bhao").show();
//$("#retData").html(data);
$("#kdFrame").attr("src", data);
}
}
);
后台:
//用htmlapi
WebClient client = new WebClient();
string url = string.Format("http://www.kuaidi100.com/applyurl?key={0}&com={1}&nu={2}", ApiKey, typeCom, nu);
log.Info("url: " + url);
Byte[] pageData = client.DownloadData(url);
string pageHtml = Encoding.ASCII.GetString(pageData);
log.Info("return url: " + pageHtml);
Response.Write(pageHtml);