我的案例下载地址:http://download.csdn.net/detail/l294333475/7973501
注意:案例下载完成后只需要替换kuaidi100.java中的key值就可以
servlet层:
package com.liupeng;
import java.io.IOException;
import java.io.PrintWriter;
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 {
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 = "shunfeng";
String exsNum = "211001746537";
//huitongkuaidi 210414794266
//zhongtong 761284432955
//shunfeng 211001746537
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 {
}
}
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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<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();
var nu = '211001746537';
var name = 'shunfeng';
var name2 = "";
switch(name){
case "zhongtong":
name2 = "中通快递";
break;
case "shunfeng":
name2 = "顺丰速递";
break;
case "yuantong":
name2 = "圆通速递";
break;
case "ems":
name2 = "EMS";
break;
case "huitongkuaidi":
name2 = "汇通快递";
break;
}
if(t=="html"){
if(c!=""){
var tmp = "<p class=\"text2\">快递公司:<strong>"+name2+"</strong>;快递单号:<strong>"+nu+"</strong></p>";
var content = "<iframe name=\"kuaidi100\" src=\""+c+"\" width=\"514\" height=\"300\"";
content += "marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\"></iframe>";
$('#divEx').append(tmp);
$('#divEx').append(content);
}
}
else{//json
if(c!=""){
var msg = "<p class=\"text2\">快递公司:<strong>"+name2+"</strong>;快递单号:<strong>"+nu+"</strong></p>";
var content ="<table class=\"tableExpress\" width=\"514px\" 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(msg);
$('#divEx').append(content);
}
}
});
</script>
</head>
<body>
<div id="divEx" style="display:none;height:300px;width:520px;overflow-y: auto;">
</div>
</body>
</html>
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 = "XXXXXXXX";
public static void main(String[] agrs)
{
//huitongkuaidi 210414794266
//zhongtong 761284432955
//shunfeng 211001746537
System.out.println(searchkuaiDiInfo("shunfeng","211001746537"));
try
{
URL url= new URL("http://api.kuaidi100.com/api?id=c1441d4e82940df1&com=shunfeng&nu=211001746537&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;
}
}