Java 在返回代码导致异常后,如何从URL.openStream()读取HTML?

Java 在返回代码导致异常后,如何从URL.openStream()读取HTML?,java,Java,我正在创建一个教育终端应用程序,它通过URL.openStream()获取网站。根据查询,页面可能返回500个错误代码。然而,在正文中有一个有价值的错误描述,我想展示一下 不幸的是,URL.openStream()在遇到返回代码500时抛出IOException,一旦捕获到异常,我就无法读取流 BufferedReader in=null; 试一试{ URL\u连接=新的URL(URL); in=new BufferedReader(新的InputStreamReader(url_connect

我正在创建一个教育终端应用程序,它通过
URL.openStream()
获取网站。根据查询,页面可能返回500个错误代码。然而,在正文中有一个有价值的错误描述,我想展示一下

不幸的是,
URL.openStream()
在遇到返回代码500时抛出IOException,一旦捕获到异常,我就无法读取流

BufferedReader in=null;
试一试{
URL\u连接=新的URL(URL);
in=new BufferedReader(新的InputStreamReader(url_connection.openStream());
}捕获(IOE异常){
}
中的变量
将保持为null,因为异常是在openStream返回之前抛出的


如何从HTTP响应中读取HTML代码?

我通过使用
HttpURLConnection
找到了一个解决方案,它有一个名为
getErrorStream()
的方法:

HttpURLConnection conn=null;
试一试{
URL\u连接=新的URL(URL);
conn=(HttpURLConnection)url_connection.openConnection();
System.out.println(新字符串(conn.getInputStream().readAllBytes());
}捕获(IOE异常){
System.out.println(新字符串(conn.getErrorStream().readAllBytes());
}

如果查看API描述中的URL,您可以看到它将返回一个,并且从中有很多选项可以读取响应。