用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(调用方法见后面第四章),即可以看到结果。效果:

clip_image002

特别提醒:

因为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);
原文地址:https://www.cnblogs.com/fengwenit/p/4668523.html