快递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>

  

posted on 2016-03-15 10:10  我是齐欢  阅读(11459)  评论(3编辑  收藏  举报