2015-11-23 75 views
0

enter image description here我已經做了一個應用程序,並使用DefaultHttpClient()來訪問我的本地服務器。 地址如下所示:「http://192.168.1.104:8080/login」。 我已經成功地使用它:) 但是,當我在我的大學,並已連接到網絡,並有一個IP地址,如:「http://130.230.146.148:8080/login」,我無法連接,並得到以下錯誤:問題出現時,出現以下錯誤: java。 net.ConnectException:無法連接到/130.230.146.148(端口8080):連接失敗:EHOSTUNREACH(沒有路由到主機)。 雖然在我的電腦上我可以訪問「130.230.146.148:8080/」。如何在Android上使用DefaultHttpClient?

我該如何解決這個問題?

+0

移動。現在已被棄用。改爲使用[HttpUrlConnection](http://developer.android.com/reference/java/net/HttpURLConnection.html)。 – Knossos

回答

1

EHOSTUNREACH(無路由到主機)錯誤意味着TCP連接嘗試失敗,因爲底層協議軟件未找到連接到目標節點的網絡節點。

當你說當你在大學並試圖連接它時意味着你可能在一個私人子網內。所以你可能會做的是檢查你的Android設備是否也連接到該子網。

+0

是我連接到我的Android上的同一網絡 – Umer

+0

我也使用了這兩個命令: android.provider.Settings.System.putString(getContentResolver(),android.provider.Settings.System.WIFI_STATIC_GATEWAY,「130.230.146.1 「); android.provider.Settings.System.putString(getContentResolver(),android.provider.Settings.System.WIFI_STATIC_NETMASK,「255.255.254.0」); 但仍未連接。 – Umer

0

也許在大學裏,你是在一個代理服務器下,試着找出什麼是代理服務器的IP和端口(如果你可以通過你的電腦瀏覽器訪問URL,你必須爲瀏覽器配置瀏覽器) 。一旦你有它,試試這個

// Proxy server 
HttpHost proxy = new HttpHost("your host", your proxy); 
// httpClient is your DefaultHttpClient once instantiated 
httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy); 
// If you need credentials, ignore otherwise 
httpClient.getCredentialsProvider().setCredentials( 
      new AuthScope("your host", your proxy), 
      new UsernamePasswordCredentials( 
        "your username", "your password")); 

希望有所幫助!

Pd積:正如其他用戶說的HttpClient已被棄用,你可以考慮從HttpClient的搬往HttpURLConnection的

+0

請看我編輯過的帖子,能否告訴我如何從發佈的「ipconfig」數據中提取數據 – Umer

+0

您不能在那裏看到代理服務器,請打開瀏覽器並檢查是否有任何代理服務器設置。在Chrome中,進入設置 - >配置,點擊'顯示高級配置',進入網絡和'更改代理配置'。如果您定義了代理,它將會在那裏。 –

相關問題