[error handle][java] 有错误信息时,getErrorStream()返回null
来源:互联网 发布:淘宝618和双11 编辑:程序博客网 时间:2024/06/05 07:47
REASON
访问豆瓣图书的api,因为图书馆的书很多豆瓣上没有。需要写一个方法获取找不到书时的错误信息。
如:http://api.douban.com/v2/book/isbn/123123 后面的123123是随便填的错误的ISBN码。
网页看的话会返回一段信息,要获取的就是它。
ERROR
然后诡异的事发生了。按照下面的代码获取不到Error message,getErrorStream()会返回null,但如果把中间那行的注释去掉,getErrorStream()就有返回信息,可是定义的map完全没有引用呀。
String urlNameString = "http://api.douban.com/v2/book/isbn/123456?"; URLConnection connection = new URL(urlNameString).openConnection(); connection.connect(); //Map<String, List<String>> map = connection.getHeaderFields(); BufferedReader in = new BufferedReader(new InputStreamReader( ((HttpURLConnection) connection).getErrorStream())); System.out.println("error:"+in.readLine());
FIND
同一个实验室的学弟给出了思路。
原方法的解释是"an error stream if any, null if there have been no errors, the connection is not connected or the server sent no useful data."。
在连接建立后服务器端并没有发数据,Stream是空的,只有在进行了getHeaderFields()操作后才会激活服务器进行数据发送,实验一下,把getHeaderFields()换成connection.getExpiration(); 错误信息依然成功返回。bingo!
0 0
- [error handle][java] 有错误信息时,getErrorStream()返回null
- openProcess时拒绝访问(GetlastError为5),返回的HANDLE为NULL的解决方法
- 异步请求,当请求的方法返回值为 java关键字 null 时,报error
- ERROR_MESSAGE返回@@error对应的错误信息
- JDBC错误信息:Invalid Handle
- Java e.getMessage 错误信息为null
- Error Handle
- HANDLE: INVALID_HANDLE_VALUE vs NULL
- WINDOWS HANDLE null INVALID_HANDLE_VALUE
- 数据库有数据,但hibernate返回null
- parentNode明明有却返回null
- json_decode时返回null
- 返回HANDLE的API,失败时有时候是NULL,有时候是INVALID_HANDLE_VALUE
- mybatis resultType=java.util.Map 时注意返回null
- Java| Java异常新理解RuntimeException(不抛出异常,程序运行时出错会有错误信息)
- CreateWindow返回Handle失败
- handle.java
- Error Creating Window Handle
- hdoj 2066 一个人的旅行
- Java基础笔记(三)
- 几道常考的前端面试题(蘑菇街)系列一
- Android Studio配置SVN 以及使用代码管理
- UVa 225 - Golygons
- [error handle][java] 有错误信息时,getErrorStream()返回null
- Hive union all报错
- Impala源码解析(1)——概念与架构
- 数据库三范式详解
- Linux核心接口Netlink
- Shiro标签
- Silver Cow Party--poj3268(SPFA)
- 按两下返回键退出,退出多个activity,添加退出动画
- Dubbo java.io.IOException: Can not lock the registry cache file