栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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开发的同学,但这不是所有的错误情况,后续如何有新的错误出现,欢迎大家补充!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696335.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号