2012-02-29 110 views
1

我有一個Java獨立的應用程序,公開通過接口兩種方法:讓 - 使GET請求一個URL,和後 - 進行POST請求的URL。我使用純Java來實現這些方法(沒有Apache HTTP客戶端)。IOException異常的HTTP錯誤代碼捕獲客戶端返回

我的問題是從服務器的HTTP錯誤返回,我得到一個IOException客戶端(用於所有碼> = 400)。爭論這是否是一種正確的行爲(恕我直言,這不是)沒有什麼意義。 無論如何,我需要檢查IOException是由連接問題還是由HTTP錯誤引起的,因爲我必須爲這兩種情況實現不同的行爲。有誰知道一個體面的解決方案來檢查這個? (通過體面我的意思是不是ahving檢查異常消息「服務器返回的HTTP響應代碼」)

任何想法真的讚賞。

謝謝。

回答

3

除解析異常字符串外,沒有什麼可以做的了。如果你看看HttpURLConnection的來源:

  if (respCode >= 400) { 
       if (respCode == 404 || respCode == 410) { 
        throw new FileNotFoundException(url.toString()); 
       } else { 
        throw new java.io.IOException("Server returned HTTP" + 
          " response code: " + respCode + " for URL: " + 
          url.toString()); 
       } 
      } 

你會發現它不是很有幫助。