2009-07-27 27 views
4

文檔(複製如下)並沒有提到IOException和HttpException在上下文中意味着什麼。如何在Apache HttpClient.execute(HttpMethod)中處理IOException和HttpException

我的問題是:在HttpClient.execute(HttpMethod)方法發生IOException後,是否必須放棄對象並創建新的HttpClient以便再次執行方法?還是它仍然可用(HttpClient對象)在發生這些異常之一後執行方法?

 
executeMethod 

public int executeMethod(HttpMethod method) 
        throws IOException, 
         HttpException 
Executes the given HTTP method. 
Parameters: 
method - the HTTP method to execute. 
Returns: 
the method's response code 
Throws: 
IOException - If an I/O (transport) error occurs. Some transport exceptions can be recovered from. 
HttpException - If a protocol exception occurs. Usually protocol exceptions cannot be recovered from. 

回答

4

,只要你想你可以重用HttpClient對象多次。我正在使用3.0版本,並且無法說明這是否在更新版本中發生了變化。

關於例外情況,評論針對的是客戶端的HttpMethod

這意味着什麼,「一些傳輸異常可以從中恢復」,是您可能能夠重新發送請求並獲得有效的響應。當您無法發送請求或未收到來自服務器的響應(例如,服務器關閉或無法處理其正在接收的所有請求)時,往往會發生這種情況。

這意味着什麼,「通常協議異常無法恢復」,是您正在發出HTTP請求的服務器沒有發送符合HTTP協議的響應。通常,重新發送請求不會產生不同的結果。

我意識到這個答案可能有點晚,對你有用,但未來的讀者可能仍然受益。

這是a useful guide on exception handling與HttpClient(無論如何傳統版本)。它可能會移動,因此這裏有一個用於查找頁面的useful search

相關問題