Java実装GetとPostリクエストの送信

10807 ワード

前言
もう何日もブログを书いていません.なぜなら、最近の生活にはたくさんのことがあって、毎日勉强しているにもかかわらず、知识の点をブログに记录していないので、とても悪いと思います.
  • 以降は必ずブログを書き続け、自分の成長過程
  • を記録しなければならない.
  • ここでいくつかの志を同じくする友达を探し当てることができることを望んで、いっしょに努力して、いっしょに進歩します.
  • 要約照合
  • Javaプロキシ接続オブジェクト
  • を作成する
  • Java送信Post要求
  • Java送信Get要求
  • コード#コード#
    Javaプロキシ接続オブジェクトの作成
        /**
         * 1.      
         * @param proxyIp
         * @param proxyPort
         * @return
         */
        public Proxy setProxy(String proxyIp , int proxyPort ){
            try{
                InetSocketAddress socketAddress 
                    = new InetSocketAddress(proxyIp , proxyPort );
                Proxy proxy = new Proxy(Proxy.Type.HTTP , socketAddress );
                return proxy;
            }catch(Exception e ){
                e.printStackTrace();
            }
            return null;
        }
    

    Java Getリクエストの送信
        /**
         * 2.  Get  
         * @param url   
         * @param params        
         *              name=ghoset&pass=ghoset
         * @return
         */
        public String sendGet(String url , String params ) throws Exception {
            StringBuilder builder = new StringBuilder();
    
            if(params != null || params.length() != 0  ){
                url = url + "?" + params;   //    URL   
            }
            URL Url  = new URL(url );
            URLConnection conn =  Url.openConnection();
            //     
            //URLConnection conn = Url.openConnection(setProxy(proxyHost, proxyPort));
            //                    
            //conn.setRequestProperty("Proxy-Authorization", "Basic "+Base64.encode("account:password".getBytes()));
    
            //     (                )
            conn.setRequestProperty("accept", "*/*" );
            conn.setRequestProperty("Connection", "Keep-Alive" );
            conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36");
    
            conn.connect();
    
            //        
            Map<String , List<String > > map = conn.getHeaderFields();
            Set<String > set = map.keySet();
            for(String k : set ){
                String v = conn.getHeaderField(k );
                System.out.println(k + ":" + v  );
            }
    
    
            //          
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream() ));
            String line = reader.readLine();
            line = new String(line.getBytes() , "gbk" );
            //        gbk    .
            while(line != null ){
                builder.append(line +"\r
    "
    ); System.out.println(line ); line = reader.readLine(); } // reader.close(); return builder.toString(); }

    Java Postリクエスト送信
    /**
         * 3.  POST  
         * @param url
         * @param params
         * @param forData
         * @return
         * @throws Exception
         */
        public String sendPost(String url , String params  , String formData) throws Exception{
    
            StringBuilder builder = new StringBuilder();
    
            if(!(params == null || params.length() == 0) ){
                url += ("?" + params ); 
            }
    
            URL Url = new URL(url );
            URLConnection conn = Url.openConnection();
    
            //       ,    GET  .
            conn.setRequestProperty("accept", "*/*" );
            conn.setRequestProperty("Connection", "Keep-Alive" );
            conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36");
    
            //         POST   
            conn.setDoInput(true );
            conn.setDoOutput(true );
    
    
            //        ,     post  
            PrintWriter writer = new PrintWriter(conn.getOutputStream() );
            writer.print(formData );                                    
            writer.flush();
    
    
            //          
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream() ) );
            String line = reader.readLine();
            line = new String(line.getBytes() , "utf-8" );  //       
            while(line != null ){
                System.out.println(line );
                builder.append(line + "\r
    "
    ); line = reader.readLine(); } reader.close(); writer.close(); return builder.toString(); }

    テストメソッド
        public static void main(String[] args) {
            HttpRequestUtil request = new HttpRequestUtil();
            try{
                Proxy proxy = request.setProxy(InetAddress.getLocalHost().getHostAddress() , 8888 );
            System.out.println(proxy );
        //Get               
        request.sendGet("http://localhost/review/html/index.php", "username=ghoset&password=ghoset" );
    
        //Post      
                String formData = "username=ghoset&password=ghoset";
                String rs = request.sendPost("http://localhost/review/java/index.php", null , formData );
    
            }catch(Exception e ){
                e.printStackTrace();
            }