使用jetty 自帶的http client!

通常狀況下咱們須要使用HttpClient時可供選擇的技術有: 
一、HttpURLConnection 
二、Apache HttpClient 
其餘的除了寫Socket 我都沒有用過了。 

偶然的機會發現Jetty 裏面也自帶了一個HttpClient,而且支持事件觸發的處理方式。 
javascript

Java代碼    收藏代碼
  1. HttpClient client = new HttpClient();  
  2. client.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);  
  3. try  
  4. {  
  5.   client.start();  
  6. }  
  7. catch (Exception e)  
  8. {  
  9.   throw new ServletException(e);  
  10. }  
  11.   
  12. // create the exchange object, which lets you define where you want to go  
  13. // and what you want to do once you get a response  
  14. ContentExchange exchange = new ContentExchange()  
  15. {  
  16.   // define the callback method to process the response when you get it back  
  17.   protected void onResponseComplete() throws IOException  
  18.   {  
  19.     super.onResponseComplete();  
  20.     String responseContent = this.getResponseContent();  
  21.   
  22.     // do something with the response content  
  23.     ...  
  24.   }  
  25. };  
  26.   
  27. exchange.setMethod("GET");  
  28. exchange.setURL("http://www.example.com/");  
  29.   
  30. // start the exchange  
  31. client.send(exchange);  

 

 

Java代碼    收藏代碼
  1. public static void main(String[] args) throws Exception {  
  2.         HttpClient httpClient = new HttpClient();  
  3.         // set up httpClient  
  4.         httpClient.start();  
  5.         ContentExchange contentExchange = new ContentExchange();  
  6.         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);  
  7.         contentExchange.setURL("http://www.iteye.com");  
  8.         httpClient.send(contentExchange);  
  9.         contentExchange.waitForDone();  
  10.         System.err.println("Response status: "  
  11.                 + contentExchange.getResponseStatus());  
  12.         byte[] responseContentBytes = contentExchange.getResponseContentBytes();  
  13.         System.out.println(new String (responseContentBytes,"UTF-8"));  
  14.     }  
相關文章
相關標籤/搜索