无法解析主机"<在此处插入URL>"没有与主机名关联的地址

황현정*_*황현정 97 android urlconnection android-asynctask android-3.0-honeycomb

我尝试过本教程: 从Web获取数据

我尝试在平板电脑的最新平台Android 3.0上实现它,但是,我收到此错误:" 无法解析主机"www.anddev.org"没有与主机名关联的地址. "

您可以签出我用来证明该文件存在的URL. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt

我创建了一个私有类,并使用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.org/images/tut/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);
}
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

lee*_*ech 148

我敢打赌,你忘了给你的应用程序使用互联网的许可.尝试将此添加到您的Android清单:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

  • 我也有这个问题.我已正确设置权限.URLConnection在大多数情况下工作正常.但有时候,我连续几次得到这个错误.调试起来特别困难,因为它只是不时出现...... (14认同)
  • 我遇到了这个错误,因为我之前关闭了移动数据并忘了重新打开它.它在办公室工作得很好,但是当我离开熟悉的wifi时,我收到了错误.有时这是愚蠢的事情:| (7认同)

Vla*_*nov 115

请检查您是否有有效的互联网连接.

  • 我也是!不知何故可以选择Wifi和飞机模式所以我只需要禁用飞机模式(我没有真正连接到互联网 - 掌上电脑) (2认同)

Pra*_*ani 63

愿你接受许可

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

您可能忘记在移动设备或任何设备上打开互联网.

  • 重新启动模拟器为我修复了它. (10认同)
  • 没有wifi上的设备是什么让我感到震惊!哎呦. (2认同)

Hei*_*upp 12

您是否可以在内置浏览器中访问该网址?

如果不是,则表示您的网络设置不正确.如果您在模拟器中,则可以查看文档的网络部分.

如果您使用的是OS/X,则模拟器使用"第一个"接口,即使您使用的是无线(en1),因为没有电缆的en0仍标记为up.您可以发出ifconfig en0 down并重新启动模拟器.我想我已经阅读过关于Windows的类似行为.

如果您使用的是Wifi/3G,请致电您的网络提供商以获取正确的DNS设置.


小智 11

如果你有像我这样的USB网络,模拟器似乎不喜欢打开和关闭连接,所以你可能需要重新启动模拟器


Min*_*wzy 6

由于您的主机导致的此错误无法通过DNS转换为IP地址.

解决这个问题:

1-确保连接到互联网(检查网络质量).

2-确保您获得访问网络的适当权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)


小智 5

我遇到了同样的错误,问题是我在使用 VPN 而我没有意识到这一点。断开VPN并重新连接wifi后解决了它。