2009-12-03 58 views
5
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; 
} 

我背后的代理,当我尝试如何解决这个UnknownHostException?

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

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

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

任何快速解决方案?

+0

复制代码:http://stackoverflow.com/questions/1432961/how-do-i-make-httpurlconnection-use-a-proxy –

回答

13
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"); 
+0

我喜欢上面的代码。 –

0

提取可能不会执行必要的DNS查找。如果你使用nslookup abc.com,你可以重定向到www.go.com。这可能是问题所在。

0

尝试使用这个,如果你是代理服务器和防火墙后面。原因是您的IE和FF已启用代理设置,但模拟器尚未配置。

  1. ADB壳

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

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

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

浏览救援人员到场此链接:Proxy which requires authentication with Android Emulator

1

如果您在模拟器运行你的应用程序,然后,采取以下

1)关闭所有正在运行的仿真。

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

3)再次启动eclipse。

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

那就是它!为我工作!

+0

谢谢!为我节省了很多时间。 – peterthegreat