JAVA HTTP通信

JAVA HTTP通信
转自:http://blog.sina.com.cn/s/blog_5dabcb7b0100hpho.html
package cn.core.util;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
 
public   class  HttpInvoker   {
 
      public   static   final  String GET_URL  =   "http://www.baidu.cn";
      public   static   final  String POST_URL  =   "http://www.baidu.cn";
      public   static   void  readContentFromGet()  throws  IOException{
          //  拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码 
         //String getURL  =  GET_URL  +   "?username=" +  URLEncoder.encode("fatman" ,"utf-8");
     String getURL  =  GET_URL;
         URL getUrl  =   new  URL(getURL);
          //  根据拼凑的URL,打开连接,URL.openConnection函数会根据URL的类型,
          //  返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection 
         HttpURLConnection connection  =  (HttpURLConnection) getUrl.openConnection();
          //  进行连接,但是实际上get request要在下一句的connection.getInputStream()函数中才会真正发到
          //  服务器 
         connection.connect();
          //  取得输入流,并使用Reader读取 
         BufferedReader reader  =   new  BufferedReader( new  InputStreamReader(connection.getInputStream()));
         System.out.println( " ============================= " );
         System.out.println( " Contents of get request " );
         System.out.println( " ============================= " );
         String lines;
         while((lines  =  reader.readLine())  !=   null ){
             System.out.println(lines);
         } 
         reader.close();
         connection.disconnect();
         System.out.println( " ============================= " );
         System.out.println( " Contents of get request ends " );
         System.out.println( " ============================= " );
     } 
 
     public   static   void  readContentFromPost()  throws  IOException{
          //  Post请求的url,与get不同的是不需要带参数 
         URL postUrl  =   new  URL(POST_URL);
          //  打开连接 
         HttpURLConnection connection  =  (HttpURLConnection) postUrl
                 .openConnection();
          //  设置是否向connection输出,因为这个是post请求,参数要放在
          //  http正文内,因此需要设为true 
         connection.setDoOutput( true );
         connection.setDoInput( true );
         //有的请求不支持POST请求
         //connection.setRequestMethod( "POST" );
         connection.setUseCaches( false );
         connection.setInstanceFollowRedirects( true );
         //connection.setRequestProperty("Content-Type" ,"application/x-www-form-urlencoded");
         connection.setRequestProperty("Content-Type" ,"text/html");
         connection.connect();
//         DataOutputStream out  =   new  DataOutputStream(connection.getOutputStream());
//         String content ="firstname=" +  URLEncoder.encode( "一个大肥人" ,  "utf-8" );
//         out.writeBytes(content); 
//         out.flush();
//         out.close();  //  flush and close 
         BufferedReader reader  =   new  BufferedReader( new  InputStreamReader(connection.getInputStream()));
         String line;
         System.out.println( " ============================= " );
         System.out.println( " Contents of post request " );
         System.out.println( " ============================= " );
           while  ((line  =  reader.readLine())  !=   null ){
             System.out.println(line);
         } 
         System.out.println( " ============================= " );
         System.out.println( " Contents of post request ends " );
         System.out.println( " ============================= " );
         reader.close();
         connection.disconnect();
     } 
 
        
       public   static   void  main(String[] args){
          //  TODO Auto-generated method stub 
           try{
             //readContentFromGet();
             readContentFromPost();
          }   catch  (IOException e){
              //  TODO Auto-generated catch block 
             e.printStackTrace();
         } 
     } 
 
 } 
posted @ 2013-03-08 10:09  方子格  阅读(506)  评论(0编辑  收藏  举报