2009-12-03 60 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