zoukankan      html  css  js  c++  java
  • 访问快递100的rest的请求

    转:http://blog.csdn.net/u011115507/article/details/9172679

    查快递的时候发现了一个http://www.kaidi100.com 是金蝶旗下的下个网站,做得很不错,几乎可以查所以的快递公司的,该站提供了API查询快递,API需要申请key.申请Key需要做它网站链接。无奈,哥的网站早到期,没续费了,于是trace了一把请求,直接用Java httpurlconnection 搞起,只是给个例子,可以再接着封装。中间遇到过乱码问题,最后发现是内容进行了gzip压缩,trace时候没有仔细看response header ,吃了回亏 教训。

    package com.sz.team5;
    
    import java.io.ByteArrayOutputStream;  
    import java.io.IOException;  
    import java.io.InputStream;  
    import java.net.HttpURLConnection;  
    import java.net.MalformedURLException;  
    import java.net.URL;  
    import java.util.zip.GZIPInputStream;  
      
      
    /** 
     * @author admin 
     * 
     */  
    public class App {  
        public static void main(String[] args) {  
            String url = "http://www.kuaidi100.com/query?type=shunfeng&postid=102662911869&id=1&valicode=&temp=0.3015635129995644";  
              
            try {  
                HttpURLConnection.setFollowRedirects(true);  
                HttpURLConnection http = (HttpURLConnection) (new URL(url).openConnection());  
                http.setDoOutput(true);  
                http.setDoOutput(true);  
                http.setInstanceFollowRedirects(true);  
                http.setRequestMethod("GET");  
                http.setRequestProperty("Connection", "keep-alive");  
                http.setRequestProperty("X-Requested-With", "XMLHttpRequest");  
                http.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.92 Safari/537.1 LBBROWSER");  
                http.setRequestProperty("Accept", "*/*");  
                http.setRequestProperty("Referer", "http://www.kuaidi100.com/");  
                http.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");  
                http.setRequestProperty("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3");  
                http.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");  
                  
                System.out.println("response  is : "+http.getResponseCode()+" "+http.getResponseMessage());  
                String contentEncoding = http.getContentEncoding();  
                System.out.println("response  encoding is : "+contentEncoding);  
                InputStream  in = null;  
                if("gzip".equalsIgnoreCase(contentEncoding)){  
                    in = new GZIPInputStream(http.getInputStream());   
                }else{  
                    in = http.getInputStream();  
                }  
                ByteArrayOutputStream baos = new ByteArrayOutputStream();  
                int data = -1;  
                while((data = in.read())!=-1){  
                    baos.write(data);  
                }  
                String resp = baos.toString("utf8");  
                System.out.println(resp);  
            } catch (MalformedURLException e) {  
                e.printStackTrace();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
              
        }  
    }  
  • 相关阅读:
    算法·进阶石
    How can I determine whether a 2D Point is within a Polygon?
    直线射线线段的相交判断
    关于时间的感想
    企业级自定义表单引擎解决方案(七)--视图模型管理
    GB28181安防Web无插件流媒体平台LiveGBS如何配置集群部署增加并发播放和录像
    接口测试之object []如何类型传参
    Excel2010工作簿被锁定,无法复制或者新增加sheet表格。
    drawio下载
    alsa-amixer-api
  • 原文地址:https://www.cnblogs.com/wangyang108/p/5754178.html
Copyright © 2011-2022 走看看