2008年1月30日 星期三

利用 HttpClient 來模擬 Client 端

Web應用程式的觸發條件基本上是由Client端發出要求(request),然後將執行要求的結果(response)傳回給Clent端。因此一些Servlet或元件在沒有client端的要求時,就沒有辦法被觸發來執行工作。Jakarta Commons HttpClient可以模擬發出要求並充當Clent端接收回應。

特色


  • 使用 Pure Java 開發標準的 HTTP v1.0 及 v1.1
  • 實作所有的 HTTP methods (GET, POST, PUT, DELETE,HEAD, OPTIONS, and TRACE)
  • 支援 HTTPS 的協定
  • 支援 proxies 的各種情況
  • 利用 Multi Form 上載檔案
  • 支援認證機制 可以設定最大連結數量
  • 自動的 cookie 處理模式
  • Request 及 Response 最佳化處理
  • 支援 HTTP 1.0 KeepAlive 連線模式及 1.1 的 persistance 保存狀態
  • 直接存取伺服器送來的 response code 及 header
  • 能夠設定連結過時
  • 實作 Command Pattern 允許去平行處理及有效重複使用連結
  • 這個是Public Open Source

實作流程

  • 建立 HttpClient 的 instance HttpClient client = new HttpClient();
  • 建立 HttpClient instance 要使用的 method。例如 GET/POST 等等 連結到一個 URL , HttpMethod method = new GetMethod(http://www.apache.org/);
  • 告訴 HttpClient 去執行這個訊息 statusCode = client.executeMethod(method);
  • 得到 Server 端的回應 byte[] responseBody = method.getResponseBody();
  • 結束這個連結 method.releaseConnection();
  • 處理這個回應資料 System.err.println(new String(responseBody));

詳關文件

HttpClient 3.1 API

沒有留言: