HttpClient使用post方式模擬表單提交數據到服務器並下載服務器文件

public class HttpClientPostUtil {
      
       public static String  loginGet(String url,String username,String password){
      HttpClient client = new DefaultHttpClient(); //客戶端對象
      HttpPost post  = new HttpPost(url);             //請求對象
      
      NameValuePair pai1 = new BasicNameValuePair("username",username);
      NameValuePair pai2 = new BasicNameValuePair("password",password);
      List< NameValuePair>list = new ArrayList< NameValuePair>();
      list.add(pai1);
      list.add(pai2);
       try {
            HttpEntity entity = new UrlEncodedFormEntity(list);//模擬form進行表單提交
             post.setEntity(entity);                               //banding內容
             HttpResponse response = client.execute(post); //連接服務器
             if(response.getStatusLine().getStatusCode()==200){
                   HttpEntity entit =  response.getEntity(); //獲取內容
                   return EntityUtils.toString(entit, "utf-8");
             }
            
      } catch (UnsupportedEncodingException e) {
             // TODO Auto-generated catch block
            e.printStackTrace();
      } catch (ClientProtocolException e) {
             // TODO Auto-generated catch block
            e.printStackTrace();
      } catch (IOException e) {
             // TODO Auto-generated catch block
            e.printStackTrace();
      }
      
       return "";
      }


      
       public static void downFile(String urlStr,String target){
            HttpClient client = new DefaultHttpClient();
            HttpPost get = new HttpPost(urlStr);
            FileOutputStream fos= null;
             try {
                  HttpResponse response=client.execute(get);
                   if(response.getStatusLine().getStatusCode()==200){
                        HttpEntity entity = response.getEntity();
                         fos = new FileOutputStream(target);
                         fos.write(EntityUtils. toByteArray(entity));        //寫入到磁盤
                         System. out.println("sucess!" );
                         /*
                         InputStream  is = entity.getContent();
                         byte [] b = new byte[1024*800];
                         int tem =0;
                         while(( tem=is.read())!=-1){
                               fos.write(b, 0, tem);
                         }
                         */  
                  }
                  fos.flush();
                  fos.close();
            } catch (ClientProtocolException e) {
                   // TODO Auto-generated catch block
                  e.printStackTrace();
            } catch (IOException e) {
                   // TODO Auto-generated catch block
                  e.printStackTrace();
            }
            
      }

}



測試類


public class HttpClientPostTest {

       public static void main(String[] args) {
             // TODO Auto-generated method stub
       String url ="http://localhost:8080/mp3/servlet/HttpClientServlet" ;
       Scanner s = new Scanner(System.in);
       System. out.println("請輸入用戶名" );
       String name = s.next();
       System. out.println("請輸入密碼" );
       String password = s.next();
 
       String msg= HttpClientPostUtil. loginGet(url,name,password);
       System. out.println(msg);
//       String str1 = "http://localhost:8080/mp3/aixi.jpg";
//       String target="d:\\aixiPost.jpg";
//       HttpClientPostUtil.downFile(str1, target);
     
      }

}
發佈了11 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章