HttpURLConnection getInputStream异常的解决

http://blog.csdn.net/q2232/article/details/48136973

因为看了许多CSDN文章,也没有找到对应的解决方法,所以把最近遇到的一个问题写出来,对以后遇到问题的伙伴们提供点帮助。

其实问题很简单,就是很正常的HttpURLConnection POST连接,当getResponseCode为HttpURLConnection.HTTP_OK(200)和HttpURLConnection.HTTP_CREATED(201)时没有任何问题。

但是当getResponseCode为自定义值,比如422时,httpURLConnection.getInputStream()报异常,Java.io.FileNotFoundException:

找了许多文章,有些让注释掉httpURLConnection.setDoOutput(true);   这说法不知道怎么来的,超级坑啊,大家不要信。

还有说法是判断getResponseCode,不是200就不去getInputStream(),但是返回值是我自定义的,返回有内容,必须获取。

最后看HttpURLConnection的API文档发现了问题。

API链接:http://www.apihome.cn/api/java/HttpURLConnection.html

InputStream getErrorStream()
          如果连接失败但服务器仍然发送了有用数据,则返回错误流。

对了,就是他,判断getResponseCode,当返回不是HttpURLConnection.HTTP_OK, HttpURLConnection.HTTP_CREATED, HttpURLConnection.HTTP_ACCEPTED 时,不能用getInputStream(),而是应该用getErrorStream()。修改代码,问题解决。

对于java开发,我们很多情况都是找实例,搜问题。确很少看API,其实API真的很重要。以后用不太熟悉的类时,一定要先看API,先看API先看API!

时间: 2024-12-21 07:28:56

HttpURLConnection getInputStream异常的解决的相关文章

Android Eclipse工程开发中的常见调试问题(二)android.os.NetworkOnMainThreadException 异常的解决办法

android.os.NetworkOnMainThreadException 异常的解决办法, 刚开是把HttpURLConnectionnection 打开连接这个方法放在UI线程里了,可能不是线程安全的,而且这个方法请求是需要等待的,所以就抛出了这个异常,后来用子线程打开的HttpURLConnection, 一切就都正常了,只要在主线程里开启子线程就行了.子线程利用URL 问题解决.下面贴一段代码 String file1 = SERVER_PATH; URL url = new URL

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result异常的解决方法

今天在写一个JAVA程序的时候出现了异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.发现报错的语句是: 1 foo.divide(bar)); 原来JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以上异常.解决方法:

使用maven时出现Failure to transfer 异常的解决办法

> 使用maven时出现Failure to transfer 错误的解决方法 在eclipse里使用maven,连接nexus私服. 添加依赖之后,总是报添加的依赖jar文件找不到,但是在nexus的库里面能找到这个依赖的jar文件,但是在本地的maven库里面找不到,于是我将本地库里面这个依赖对应的文件夹删掉,然后在eclipse里面执行update dependencies.成功解决问题! 右键单击项目->maven->update dependencies. 引起的原因是由于本地

Hibernate懒加载异常的解决与深刻分析

出现原因: Hibernate允许对关联对象及属性延迟加载,前提是这个操作在同一个Hibernate session范围内进行.如果发生这样的情况,当service层返回了一个启用延迟加载功能的domain对象给web层,而web层访问到这些需要延迟加载的对象或属性时,由于加载domain对象的session已经关闭导致无法访问,就会出现访问异常. 解决方法: 我们可以使用一个过滤器,在web请求时给它绑定一个Hibernatesession,这样就可以保证整个请求的过程中session都是开启

.net安装部署“Error 1001 在初始化安装时发生异常” 的解决方法

状况描述:打包安装后,如果删除安装目录中的某个文件,这时从桌面快捷方式启动软件系统会自动运行修复程序,此时因为路径问题会报出"错误 1001 在初始化安装时发生异常xxx"的异常.(前提是你的安装部署中加入了"自定义操作",并为其传值). 查找原因原来是"自定义操作"中CustomActionData值有误造成.未出错前的CustomActionData. /DbName=[DBNAME] /ServerName=[SERVERNAME] /Us

cocos2d-x发生undefined reference to `XX'异常 一劳永逸解决办法

cocos2d-x发生undefined reference to `XX'错误 一劳永逸解决方法 参考文章: http://blog.csdn.net/kafeidev/article/details/9157895 http://blog.csdn.net/fu_zk/article/details/12836431 eclipse cocos2dx项目,出现错误 E:/Acocos2d-x/cocos2d-1.0.1-x-0.11.0/MyBilliard/android/jni/../.

Android开发:StaggeredGridView瀑布流控件运行异常崩溃解决方法

StaggeredGridView是github上一个开源的瀑布流图片库,本文将分享集成StaggeredGridView时碰到的异常以及解决方法,StaggeredGriedView开源地址为:https://github.com/maurycyw/StaggeredGridView. StaggeredGriedViewDemo运行报错异常为: java.lang.RuntimeException: Unable to start activity  ComponentInfo{com.ex

Maven常见异常及解决方法(转)

异常1: [ERROR] Failed to execute goal on project biz_zhuhai: Could not resolve dependencies for project biz_zhuhai:biz_zhuhai:jar:0.0.1-SNAPSHOT: Failed to collect dependencies for [com.maywide.ibh:lib345:pom:1.0 (compile)]: Failed to read artifact des

【转】类型初始值设定项引发异常的解决办法

类型初始值设定项引发异常的解决办法 转自:小羊快跑1  http://www.cnblogs.com/SheepRunning/p/4452847.html 今天在调试代码的时候突然抛出了如下异常:"XORM.Database"的类型初始值设定项引发异常. 顿时感觉很突兀,平常的时候一点问题没有,为什么今天调试就出问题了呢?测试了一下,发现在数据处理层的一条实例化代码处出错: //获取类型的映射信息 MappingInfo mapInfo = xmlMapping.GetDataMap