zoukankan      html  css  js  c++  java
  • 快递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;520px;overflow-y: auto;">
    										
    	</div>
      </body>
    </html>
    

      

  • 相关阅读:
    [转载]Linux用户管理全攻略(三)
    [转载]Linux用户管理全攻略(二)
    [转载]Linux用户管理全攻略(二)
    [转载]如何将数据库所有表里面的varchar字段批量改成N
    [转载]第八章  grep 家族
    [转载]第八章  grep 家族
    [转载]如何将数据库所有表里面的varchar字段批量改成N
    [转载]informix学习分享
    [转载]Linux用户管理全攻略(一)
    [转载]Linux用户管理全攻略(一)
  • 原文地址:https://www.cnblogs.com/qihuan/p/5278265.html
Copyright © 2011-2022 走看看