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

Java http错误代码返回时客户端捕获IOException,java,http,post,get,ioexception,Java,Http,Post,Get,Ioexception,我有一个java独立应用程序,它通过一个接口公开了两种方法:get-to向URL发出get请求和post-to向URL发出post请求。我使用纯Java实现这些方法(没有Apache HTTP客户端) 我的问题是,在从服务器返回HTTP错误时,我得到一个IOException客户端(对于所有代码>=400)。争论这是否是一个正确的行为是没有什么意义的。 无论如何,我需要检查IOException是由连接问题还是HTTP错误引起的,因为我必须为这两种情况实现不同的行为。有人知道一个像样的解决方案来

我有一个java独立应用程序,它通过一个接口公开了两种方法:get-to向URL发出get请求和post-to向URL发出post请求。我使用纯Java实现这些方法(没有Apache HTTP客户端)

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

任何想法都非常感谢


谢谢

除了解析异常字符串之外,您没有什么可以做的。如果查看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());
                }
            }
你会发现这没有多大帮助