HttpURLConnection进行网络请求处理报错(FileNotFoundException的错误)解决

HttpURLConnection报错解决

错误来源

在之前通过Eclipse+ADT进行android开发的过程中这个FileNotFoundException:http:192.XXXX./项目(这里随便取了一个路径)可以完整的运行项目没有出现任何问题,

但是在我将项目转移到AS(Android Studio)上进行开发测试的时候,在HttpURLConnection的链接问题上却给我报错了

System.err: java.io.FileNotFoundException:
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnection)

大致是上述的问题报错,让我很纳闷,之前可以平稳运行的,迁移到AS上就不行了。

解决

  • 首先复制了错误取了百度
  • 找到了两个方法

1、注释掉setDoOutput(true)

HttpURLConnection conn;
					conn = (HttpURLConnection)new URL("http://XXXXXXXXXXXX:8080/project/androidaction/g112.action?area="+java.net.URLEncoder.encode(area)).openConnection();


					conn.setRequestMethod("GET");
					conn.setReadTimeout(3000);//设置读取超时的毫秒数
					conn.setConnectTimeout(3000);//设置连接超时的毫秒数

					//已经注释掉
					conn.setDoInput(true);
					conn.setUseCaches(false);

					input  = conn.getInputStream();//得到连接输入流
					InputStreamReader inputStreamReader = new InputStreamReader(input);
					//为得到JSON数据创建BufferedReader
					BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

					String line = "";

					while((line = bufferedReader.readLine()) != null) {
						data  = data + line+"\n";
					}

分析:

  • 若设置了conn.setRequestMethod(“GET”);
  • 同时设置setDoOutput(true),
  • 导致httpCon.setDoOutput(true),将导致请求以post方式提交,即使设置了httpCon.setRequestMethod(“GET”);
    将代码中的httpCon.setDoOutput(true);

因此我们需要对其进行删除

2、path请求路径有中文字符

现在想想也感觉奇怪,之前在Eclipse+ADT开发上这个功能可以实现,中文字符也不需要转化,但现在出现了错误,希望可以帮到大家,在我们传递参数的路径上,若是有中文数组存在,需要将其转化以下,

·java.net.URLEncoder.encode("中国");

总结
以上便是我所遇到的FileNotFoundException的报错问题,在上面两个错误改正后,我的代码能够平稳运行,希望可以帮到在学习Android开发的同学,但这不是所有的错误情况,后续如何有新的错误出现,欢迎大家补充!!

注:

个人代码问题或需要程序编写辅导服务等问题请加闲鱼【代码无bug】
或点击下面链接跳转闲鱼进行咨询

闲鱼链接

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值