2012-11-25 8 views
0

我在下載網頁的HTML時遇到了一些麻煩(請參閱此問題:Android: Downloading HTML not always working)。HttpConnectionParams.setConnectionTimeout是什麼意思?

在我的代碼,我用這個方法:

HttpConnectionParams.setConnectionTimeout(my_httpParams, 3000); 

我真的不知道這意味着什麼。這是否意味着如果下載HTML文件(我使用它)的時間超過3000毫秒,它會停止?或者這意味着什麼?

此外,這種方法和setSoTimeout有什麼區別?

+0

你看了[javadoc的(http://hc.apache.org/ httpcomponents核-GA /的HttpCore/apidocs /組織/阿帕奇/ HTTP/PARAMS/HttpConnectionParams.html)? –

+0

@安德烈我做了,但我沒有完全理解它。 – Xander

回答

5

這意味着如果你在3000毫秒內沒有建立連接,它將停止嘗試。

setSoTimeout()方法本質上是一樣的東西,但它會等待不僅僅是初始連接。因此,您將檢查每個數據包,看它是否超時,而setConnectionTimeout()方法只會在初始連接上超時。有關更多詳細信息,請參閱this answer

+0

因此,在一個緩慢的3g連接上不能這麼做,需要很長時間(超過3000毫秒)才能建立連接,這就是爲什麼我的狀態碼爲0的原因? – Xander

+0

這可能意味着其他事情也在發生。確保您嘗試連接的URL首先有效。另外,如果您想確定它不是時間長度,將其設置爲0會告訴連接不會超時。 – PearsonArtPhoto

+0

它也可以發生在WiFi上,爲什麼不是3G?服務器沒有響應,與路由器連起來等 – RvdK