快递100API接口调用代码示例
package com.util; import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection; public class kuaidi100
{ private static String key = "29833628d495d7a5";//必填项,从官网申请的key public static void main(String[] agrs){ System.out.println(searchkuaiDiInfo("rufengda","516013113118353001"));
try{
URL url= new URL("http://api.kuaidi100.com/api?id=c1441d4e82940df1&com=rufengda&nu=516013113118353001&show=0&muti=1&order=desc");
URLConnection con=url.openConnection();
con.setAllowUserInteraction(false);
InputStream urlStream = url.openStream();
String type = con.guessContentTypeFromStream(urlStream);
String charSet=null;
if (type == null)
type = con.getContentType(); if (type == null || type.trim().length() == 0 || type.trim().indexOf("text/html") < 0)
return ; if(type.indexOf("charset=") > 0)
charSet = type.substring(type.indexOf("charset=") + 8); byte b[] = new byte[10000];
int numRead = urlStream.read(b);
String content = new String(b, 0, numRead);
while (numRead != -1) {
numRead = urlStream.read(b);
if (numRead != -1) {
//String newContent = new String(b, 0, numRead);
String newContent = new String(b, 0, numRead, charSet);
content += newContent;
}
}
System.out.println("content:" + content);
urlStream.close();
} catch (MalformedURLException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
/**
* 查询快递信息
* @param com 快递公司代码
* @param nu 快递单号
* @return
*/
public static String getExpressInfo(String com ,String nu){
String ret = "";
try{
StringBuilder sb = new StringBuilder();
sb.append("http://api.kuaidi100.com/api?id=");
sb.append(kuaidi100.key);
sb.append("&com=").append(com);
sb.append("&nu=").append(nu);
sb.append("&show=0&muti=1&order=desc");
URL url= new URL(sb.toString());
URLConnection con=url.openConnection();
con.setAllowUserInteraction(false);
InputStream urlStream = url.openStream();
String type = con.guessContentTypeFromStream(urlStream);
String charSet=null;
if (type == null)
type = con.getContentType(); if (type == null || type.trim().length() == 0 || type.trim().indexOf("text/html") < 0)
return ""; if(type.indexOf("charset=") > 0)
charSet = type.substring(type.indexOf("charset=") + 8); byte b[] = new byte[10000];
int numRead = urlStream.read(b);
String content = new String(b, 0, numRead);
while (numRead != -1) {
numRead = urlStream.read(b);
if (numRead != -1) {
//String newContent = new String(b, 0, numRead);
String newContent = new String(b, 0, numRead, charSet);
content += newContent;
}
}
ret = content;
urlStream.close();
} catch (MalformedURLException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
return ret;
}
/**
* 该接口使用与收费的快递公司接口查询
* @param com 快递公司代码
* @param nu 快递单号
* @return
*/
public static String searchkuaiDiInfo(String com, String nu){
String content = "";
try{
StringBuilder sb = new StringBuilder();
sb.append("http://www.kuaidi100.com/applyurl?key=").append(kuaidi100.key);
sb.append("&com=").append(com);
sb.append("&nu=").append(nu);
URL url = new URL(sb.toString());
URLConnection con = url.openConnection();
con.setAllowUserInteraction(false);
InputStream urlStream = url.openStream();
byte b[] = new byte[10000];
int numRead = urlStream.read(b);
content = new String(b, 0, numRead);
while (numRead != -1){
numRead = urlStream.read(b);
if (numRead != -1){
// String newContent = new String(b, 0, numRead);
String newContent = new String(b, 0, numRead, "UTF-8");
content += newContent;
}
}
urlStream.close();
}
catch (Exception e){
e.printStackTrace();
System.out.println("快递查询错误");
}
return content;
} }
web项目测试页面的测试代码
package com.kuaidi; import java.io.IOException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.util.kuaidi100; public class Test extends HttpServlet { private static final long serialVersionUID = 1L; public Test() {
super();
} public void destroy() {
super.destroy();
} public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String expressContent = "";
String expressType = "json";
String exsName = "rufengda";
String exsNum = "516013113118353001"; if ("shunfeng".equals(exsName) || "ems".equals(exsName)) {
//返回HTML页面
expressContent = kuaidi100.searchkuaiDiInfo(exsName, exsNum);
expressType = "html";
}else{
//返回的是json
expressContent = kuaidi100.getExpressInfo(exsName,exsNum);
} request.getSession().setAttribute("expressContent", expressContent);
request.getSession().setAttribute("expressType", expressType); request.getRequestDispatcher("test.jsp").forward(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
} public void init() throws ServletException {
} }
对应的web.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>Test</servlet-name>
<servlet-class>com.kuaidi.Test</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
测试页面test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'test.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page"> <script src="<%=basePath%>js/jquery-1.11.1.min.js"></script> <script type="text/javascript">
var t = '${expressType}';//返回快递信息的类型
var c = '${expressContent}';//快递内容
$(document).ready(function(){
$('#divEx').show(); if(t=="html"){
if(c!=""){
var content = "<iframe name=\"kuaidi100\" src=\""+c+"\" width=\"520\" height=\"300\"";
content += "marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\"></iframe>";
$('#divEx').append(content);
}
}
else{//json
if(c!=""){
var content ="<table class=\"tableExpress\" width=\"520px\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" id=\"showtablecontext\">";
content += "<tr><td width=\"27%\" class=\"bluebg\" >时间</td>";
content += "<td width=\"73%\" class=\"bluebg\">地点和跟踪进度</td></tr>"; var info = eval('(' + c + ')');
var tmp = "";
for(var i=0;i<info.data.length;i++){
tmp += "<tr><td class=\"nobg\">";
tmp += info.data[i].time;
tmp += "</td><td class=\"nobg\">";
tmp += info.data[i].context;
tmp += "</td></tr>";
} content += tmp;
content += "</table>";
$('#divEx').append(content);
}
}
});
</script>
</head> <body>
<div id="divEx" style="display:none;height:300px;width:520px;overflow-y: auto;"> </div>
</body>
</html>
快递100API接口调用代码示例的更多相关文章
- 快递鸟API接口调用代码示例(免费不限量)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- EzHttp 流传输调用代码示例
EzHttp框架提供的内置接口,用于文件流等传输 流传输调用代码示例 内置接口: public interface IEzStreamHandler { Task<byte[]> GetD ...
- 快递100API接口开发
api.kuaidi100.com 获得物流单号的跟踪信息(免费) 1.应用场景 2.是否需要授权 3.请求地址 4.输入参数 5.返回结果 6.返回示例 7.API工具 8.FAQ 通过向指定的地址 ...
- 基于php的银行卡实名认证接口调用代码实例
银行卡二元素检测,检测输入的姓名.银行卡号是否一致. 银行卡实名认证接口:https://www.juhe.cn/docs/api/id/188 <?php // +-------------- ...
- 生活常用类API调用的代码示例合集:邮编查询、今日热门新闻查询、区号查询等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 邮编查询:通过邮编查询地名:通过地名查询邮编 今日热门新闻查询:提 ...
- 天气类API调用的代码示例合集:全国天气预报、实时空气质量数据查询、PM2.5空气质量指数等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 全国天气预报:数据来自国家气象局,可根据地名.经纬度GPS.IP查 ...
- 位置信息类API调用的代码示例合集:中国省市区查询、经纬度地址转换、POI检索等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 中国省市区查询:2017最新中国省市区地址 经纬度地址转换:经纬度 ...
- 通讯服务类API调用的代码示例合集:短信服务、手机号归属地查询、电信基站查询等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 短信服务:通知类和验证码短信,全国三网合一通道,5秒内到达,费用低 ...
- 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...
随机推荐
- 大规模网站sesson会话保持思路及实践配置
1.需求: 请教个问题:我用lvs的rr模式,(考虑过 ipvsadm -p,但是这样就失去了负载均衡的意义感觉),后端有10台web,用一台memcached专门用于存储session文件,但是现在 ...
- mysql数据库新插入数据,需要立即获取最新插入的id
在MySQL中,使用auto_increment类型的id字段作为表的主键.通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况, ...
- Jenkins构建时提示maven版本问题
在使用Jenkins进行项目构建的时候出现下面问题 [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were enc ...
- python基础===包的导入和__init__.py的介绍
转自:https://www.cnblogs.com/botoo/p/8241522.html 调用同级目录: – src |– mod.py |– test.py 若在程序test.py中导入模块m ...
- python中的接口和依赖注入
首先,我们必须明确的一点是:python里无接口类型,定义接口只是一个人为规定,在编程过程自我约束 python的类是可以写任意个方法的 定义一个接口对继承类进行约束,接口里有什么方法,继承类就必须有 ...
- importlib模块与__import__详解
importlib模块与__import__都可以通过过字符串来导入另外一个模块,但在用法上和本质上都有很大的不同. 通过下面示例说明,有如下一个工程目录: name = 'test' def get ...
- centos 阶段复习 2015-4-6 dd命令 hosts.allow和hosts.deny 啊铭的myssh脚本 清空history命令历史 /dev/zero 零发生器 /dev/null 黑洞 /dev/random 生成随机数 第十一节课
centos 阶段复习 2015-4-6 dd命令 hosts.allow和hosts.deny 啊铭的myssh脚本 清空history命令历史 /dev/zero 零发生器 /dev/nul ...
- Spring源码解析(四)Bean的实例化和依赖注入
我们虽然获得了Bean的描述信息BeanDefinition,但是什么时候才会真正的实例化这些Bean呢.其实一共有两个触发点,但是最后实际上调用的是同一个方法. 第一个:在AbstractAppli ...
- 详解javascript实现自定义事件
这篇文章主要为大家介绍了javascript实现自定义事件的方法,自定义事件,顾名思义,就是自己定义事件类型,自己定义事件处理函数,javascript如何实现自定义事件,需要了解的朋友可以参考下 我 ...
- HDU1452:Happy 2004(求因子和+分解质因子+逆元)上一题的简单版
题目链接:传送门 题目要求:求S(2004^x)%29. 题目解析:因子和函数为乘性函数,所以首先质因子分解s(2004^x)=s(2^2*x)*s(3^x)*s(167^x); 因为2与29,166 ...