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();  
            }  
              
        }  
    }  
  • 相关阅读:
    记录Windows下文件操作记录
    线程太多导致socket连接池爆满,进程启动不了
    【转载】windbg 常用命令详解
    比较两个CSV的方法的探索
    【转载】java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider
    [转载]sql server死锁
    moco搭建json api网站用于接口测试
    Httprequest 获取url 常用方法
    test文件伪装
    微信小程序开发历程
  • 原文地址:https://www.cnblogs.com/wangyang108/p/5754178.html
Copyright © 2011-2022 走看看