无法parsing主机“<在此处插入URL>”没有与主机名关联的地址
我试着按照这个教程: 从网上获取数据
我尝试了在平板电脑的最新平台Android 3.0上实现它,但是,我得到这个错误:“ 无法parsing主机”www.anddev.org“没有与主机名关联的地址 ”。
您可以检出我用来certificate文件存在的URL。 http://www.anddev.orghttp://img.dovov.comtut/basic/getdatafromtheweb/loadme.txt
我创build了一个私人类,并使用asynctask进行扩展。 这里是代码:
private class Downloader extends AsyncTask<String,Void,String>{ String myString = null; @Override protected String doInBackground(String... arg0) { try{ URL myURL = new URL("http://www.anddev.orghttp://img.dovov.comtut/basic/getdatafromtheweb/loadme.txt"); URLConnection ucon = myURL.openConnection(); InputStream is = ucon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(50); int current = 0; while((current=bis.read())!=-1){ baf.append((byte)current); } myString = new String (baf.toByteArray()); }catch(Exception e){ myString = e.getMessage(); } return myString; } @Override protected void onPostExecute(String result){ tv.setText(result); } }
任何帮助,将不胜感激。
我敢打赌,你忘了给你的应用程序使用互联网的权限。 尝试添加到您的Android清单:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
请检查您是否有有效的networking连接。
你可能已经获得许可
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
但
您可能忘记在移动设备或任何设备上开启Internet 。
你是否能够从内置浏览器中访问该url?
否则,表示您的networking设置不正确。 如果您在模拟器中,可以查看文档的networking部分 。
如果您使用的是OS / X,则即使您使用无线(en1),仿真器也使用“第一个”接口en0,因为没有电缆的en0仍然标记为“up”。 您可以发出ifconfig en0 down
然后重新启动模拟器。 我想我已经阅读了有关Windows上的类似行为。
如果您使用的是Wifi / 3G,请致电您的networking提供商以获取正确的DNS设置。
如果你有像我这样的USBnetworking,模拟器似乎不喜欢连接打开和closures,所以你可能需要重新启动模拟器
我得到了同样的错误,并为此问题是,我在VPN上,我没有意识到这一点。 断开VPN后,重新连接无线networking解决它。
由于您的主机,这个错误不能通过DNS转换为IP地址。
解决这个问题:
1-确保你连接到互联网(检查networking质量)。
2-确保你有正确的权限访问networking
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
如果您间歇性地看到这一点,并且您的移动wifi互联网连接似乎没问题,那么很可能您的ISP的廉价网关路由器正在经历高stream量负载。
您应该捕获这些错误,并向用户显示提醒,以closures使用networking的任何其他应用程序。
通过在桌面上运行几个高清YouTubevideo来重现testing,或者只是去繁忙的星巴克。
如果您觉得有用,请为某人付款。
此外,请确保您的设备不处于飞行模式和/或启用数据使用情况。