【问题标题】:How do I fix this UnknownHostException?如何修复此 UnknownHostException?
【发布时间】:2010-12-22 17:28:42
【问题描述】:
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" /> 

在清单文件中。

有什么快速的解决方案吗?

【问题讨论】:

标签: java android url


【解决方案1】:
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");

【讨论】:

    【解决方案2】:

    如果您在 Emulator 上运行您的应用,请执行以下操作 -

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

    2)清理您的项目并关闭 Eclipse。

    3) 再次启动 eclipse。

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

    就是这样!为我工作!!!

    【讨论】:

    • 谢谢!为我节省了很多时间。
    【解决方案3】:

    fetch 可能没有进行必要的 DNS 查找。如果你 nslookup abc.com,你会重定向到 www.go.com。这可能是问题所在。

    【讨论】:

      【解决方案4】:

      如果您在代理和防火墙后面,请尝试使用它。原因是您的 IE 和 FF 启用了代理设置,但尚未配置模拟器。

      1. adb 外壳

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

      3. sqlite> INSERT INTO system VALUES(99,'http_proxy', 'proxy:port');
      4. sqlite> SELECT * FROM system;

      您应该能够在表格底部看到最后插入的值。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-11
        • 2011-12-30
        • 2021-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多