快递100API接口调用代码示例

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

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项目测试页面的测试代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

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的配置

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<?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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

<%@ 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>

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值