2 libufengiam libufengiam 于 2013.08.27 21:18 提问

inputStream解析url报错:UnKnownHostException:xxx.com

原文已发布在android论坛,但是没人回应,悬赏了100没人理我。
原文链接:
http://bbs.csdn.net/topics/390566835?page=1#post-395413355
程序很简单:
main里:

String urlString = "http://ftp121455.host181.web522.com/daoyutwo.txt";
InputStream inputStream;

onCreat里:

    try {
        URL url = new URL(urlString);
    //方法1:
        inputStream = url.openStream();
        Log.e("internet", "got InputStream");
    //方法2:
        URLConnection urlConnection = url.openConnection();
        inputStream = urlConnection.getInputStream();
        Log.e("internet", "got InputStream");
    //方法3:
        URLConnection urlConnection = url.openConnection();
        HttpURLConnection httpURLConnection = (HttpURLConnection)urlConnection;
        inputStream = httpURLConnection.getInputStream();
        Log.e("internet", "got InputStream");

    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

用真机测试,结果每次执行到"inputStream = xxx"都会报错:
java.net.UnKnownHostException: http://ftp121455.host181.web522.com

有的时候手机上同样的两个工程,函数都一样的,一个可以另一个不可以。

用模拟器完美运行。
求指点该怎么办?用手机怎么都不行,都要急死了。

3个回答

Jave_
Jave_   2013.08.28 08:35

你把http://去掉看看

libufengiam
libufengiam 我试过百度的一张图片,也是这样。就刚才,我把能联网获取数据的软件,在eclipse里改动后run一遍,可以联网。卸了再run一遍,就不行了。
接近 5 年之前 回复
Jave_
Jave_ 按道理不会出现这样的情况 是不是你这个网址的问题,换成其他的呢
接近 5 年之前 回复
libufengiam
libufengiam 是啊,两个工程main里的代码一样,我都是拷贝的,但是有的时候一个行,另一个不行。有的时候就倒过来了 。娘啊我要崩溃了。
接近 5 年之前 回复
Jave_
Jave_ 不好意思,我没点进去看,你说同样的两个工程,一个可以一个不可以,有点奇怪
接近 5 年之前 回复
libufengiam
libufengiam 不知道你看没看过我的原问答链接,我在里面试过了。如果去掉http://,会报错提示缺少协议。
接近 5 年之前 回复
biaoguo819
biaoguo819   2013.08.29 10:13

最好不要在主线程里面访问网络,不然会出问题的,可以新建一个线程异步加载,楼主说的同样两个工程,所使用的Android版本不一样吧

libufengiam
libufengiam 不行啊,strictMode无法识别。Multiple markers at this line - StrictMode cannot be resolved - StrictMode cannot be resolved to a type
接近 5 年之前 回复
biaoguo819
biaoguo819 楼主把下面的这个方法加进去试试public static void closeStrictMode() { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectAll().penaltyLog().build()); }
接近 5 年之前 回复
libufengiam
libufengiam 我知道主线程里访问是会出问题的,我重新写了一个,双进程,一个获取baidu/index.html,一个获取首页的图标。结果一开始行,后来删了重装又不行了。而且4.0的系统会报错。
接近 5 年之前 回复
u013125604
u013125604   2015.08.14 21:09

累了老两口开口科技巨化股份惹润滑剂经济回锅肉儿童规划

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【Android开发错误系列】URLConnection解析URL的UnknownHostException异常解决办法
本来想好好写一篇关于使用AsycnTask异步任务的学习总结的时候,本来大致都快写完了 但是最后面却出现了问题,ImageView控件无法获取解析获得的网络图片 一开始以为是URL的问题,但是经过测试在浏览器打的开,所以排除了这个问题 后来怀疑是否我没有在AndroidManifest.xml中加入访问网络的权限,经过再三确认,也不是权限的问题 同时我发现logcat里面既没有
解析网络数据时,String与InputStream互转的几种方法
/**      * 利用BufferedReader实现Inputstream转换成String       *       * @param in      * @return String      */            public static String Inputstr2Str_Reader(InputStream in, String encode)
如何解决在HttpURLConnection的getInputStream方法调用时出错的问题
关于HttpURLConnection的用法在网上可以查到很多的代码示例,但是在调用getInputStream时常常莫名地出错(加了Try/catch,但直接跳到finally这块里),在AndroidManifest.xml中也加入了权限申请如下:   但仍然出错,在网上查来查去,不得其解,终于在一篇博文中找到了答案,请注意! Android4.0后所有网络方面的操作都不能在主线程!!!
HttpURLConnection getInputStream异常的解决
因为看了许多CSDN文章,也没有找到对应的解决方法,所以把最近遇到的一个问题写出来,对以后遇到问题的伙伴们提供点帮助。 其实问题很简单,就是很正常的HttpURLConnection POST连接,当getResponseCode为HttpURLConnection.HTTP_OK(200)和HttpURLConnection.HTTP_CREATED(201)时没有任何问题。 但是当
DNS域名解析过程与 UnknowHostException的一种解决方案
 DNS解析过程及原理 第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。 第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的
HttpURLConnection中getInputStream()报异常
在调用  getInputStream()方法是会包异常:java.io.FileNotFoundException 解决方法:想判断返回值,在获取相应流 int code = conn.getResponseCode(); if (code == 200) { is = conn.getInputStream(); // 得到网络返回的输入流 } else { is = conn.g
使用 URL 读取网络资源
URL (Uniform Resource Locator ) 代表同一资源定位符,它是指向互联网”资源”的指针.资源可以是简单的文件或目录.也可以是对更复杂的对象的引用.例如对数据库或搜索引擎的查询.通常情况而言..url 可以由协议名,主机,端口和资源组成.既满足如下格式: protocol://host:port/resourceName 例如如下的 Url地址https://www.baid
Java读取网络数据(新浪网址)InputStream的数据流操作实录笔记(一) 分享出来供大家参考!
package sina.jsontest.test; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.http.Http
遇到异常java.net.UnknownHostException: 主机名: 主机名
参考http://blog.csdn.net/wocaonima123987/article/details/8807990 问题原因是在系统的 /etc/Hostname中配置了“zw_65_43” 作为主机名,而在/etc/hosts文件中没有 相应的“zw_65_43”。简单的解决办法是 对应关系配好就可以,甚至删除/etc/Hostname这个文件也可以。   深层的原因:
java 通过url取得文件返回InputStream类型数据的工具类
/** * 通过url取得文件返回InputStream类型数据 * @author gugf * */ public class HttpUtils { /** * 通过图片url返回图片Bitmap * @param url * @return */ public static InputStream returnBitMap(String path) { U