AJAX+CURL 实现快递查询
本项目是调用快递100
首页的查询API,运用ajax和curl实现快递查询的功能
1 分析
1.1 打开快递100首页,在搜索框输入一个快递单号例如111111。
打开chrome调试工具,可以看到,当用户输入单号之后,会有一条autoComNum?text=111111
的请求。点击进去查看详细信息可以看到真实的请求地址是 http://www.kuaidi100.com/autonumber/autoComNum?text=11111 ,请求方式是POST,传递了一个参数text=[快递单号],返回值是一串json。json字符串里面有一个comCode(快递公司)。这个就是我们想要的数据。
1.2 选择一个自动识别的快递公司,然后点击查询
可以看到有一个query?type=***的一个请求,查看详情。可以看到真实请求地址 http://www.kuaidi100.com/query?type=kuaijiesudi&postid=111111&id=1&valicode=&temp=0.4196015551034187 ,请求方式是GET,返回值是一串字符串,传递了5个参数,而真实有效的参数是前面两个,type=[快递公司]&postid=[快递单号],对比一下页面信息,这就是我们要的运单详情了。
2 程序实现
前台使用jquery ajax将快递单号传递到后台,后台查询到结果返回到前台。
而调用快递100 API部分,则用CURL实现。
前台页面以及AJAX部分,请看index.php
CURL部分请看search.php
3 实现效果图
3.1 单号错误
3.2 正常
3.3 没有查询到记录
4 查询结果
4.1 电脑版
4.2 手机版
5 其他说明
注意,如果使用https请求时,本机没有安装ssl证书的话,会有报错。
请务必加上
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
github地址