如何修复此UnknownHostException?

时间:2009-12-03 06:49:30

标签: java android url

public static final String readURL(String url)throws Throwable
{
        try {
            InputStream in = (InputStream) fetch(url);
            byte[] bArr = readBytes(in);
            return new String(bArr);
        } catch (Throwable e) {
            throw e;
            }
}


public static final Object fetch(String address) throws MalformedURLException,IOException {
    URL url = new URL(address);
    Object content = url.getContent();
    return content;
}

我在代理后面,当我尝试

readURL( “http://abc.com”)

访问URL http://abc.com它会抛出java.net.UnknownHostException: 我有:

<uses-permission android:name="android.permission.INTERNET" /> 
清单文件中的

任何快速解决方案?

4 个答案:

答案 0 :(得分:16)

Proxy proxy = new Proxy(Proxy.DIRECT,
    new InetSocketAddress(proxyHost, proxyPort));
url.openConnection(proxy);

System.setProperty("http.proxyHost", "my.proxyhost.com");
System.setProperty("http.proxyPort", "1234");

答案 1 :(得分:1)

如果您在 模拟器 上运行应用,请执行以下操作 -

1)关闭所有正在运行的模拟器。

2)清理项目并关闭Eclipse。

3)再次开始日食。

4)创建新模拟器并运行项目。

多数民众赞成!为我工作!!!

答案 2 :(得分:0)

fetch可能无法进行必要的DNS查找。如果您查看abc.com,您将获得重定向到www.go.com。这可能是问题所在。

答案 3 :(得分:0)

如果您在代理和防火墙后面,请尝试使用此功能。原因是您的IE和FF已启用代理设置但尚未配置仿真器。

  1.   

    adb shell

  2. sqlite3 /data/data/com.google.android.providers.settings/databases/settings.db

  3. 源码&GT; INSERT INTO系统VALUES(99,'http_proxy','proxy:port');
  4. 源码&GT; SELECT * FROM system;
  5. 您应该能够在表格的底部看到最后插入的值。

    浏览此链接:Proxy which requires authentication with Android Emulator