IOException在http错误代码返回时捕获了客户端

时间:2012-02-29 08:42:14

标签: java http post get ioexception

我有一个java独立应用程序,它通过一个接口公开两个方法:get - 对URL发出GET请求,然后发布 - 向URL发出POST请求。我使用纯Java来实现这些方法(没有Apache HTTP客户端)。

我的问题是,当从服务器返回HTTP错误时,我得到一个IOException客户端(对于所有代码> = 400)。争论这是否是正确的行为(恕我直言,不是这样)是没有意义的。 无论如何,我需要检查IOException是由连接问题引起的,还是由HTTP错误引起的,因为我必须为这两种情况实现不同的行为。有谁知道一个体面的解决方案来检查这个? (通过体面我的意思是不是要检查异常消息“服务器返回的HTTP响应代码”)

非常感谢任何想法。

感谢。

1 个答案:

答案 0 :(得分: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());
                }
            }

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