2012-02-29 109 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()); 
       } 
      } 

你会发现它不是很有帮助。