在Android 2.1 / 2.2上,我使用Android SDK中的DefaultHttpClient
。
Apache在他们的文档中说有2次超时:
CoreConnectionPNames.SO_TIMEOUT ='http.socket.timeout':定义套接字超时(SO_TIMEOUT),以毫秒为单位,即等待数据的超时时间,或者以不同的方式设置最大值两个连续数据包之间的周期不活动)。超时值为零被解释为无限超时。此参数需要java.lang.Integer类型的值。如果未设置此参数,则读取操作不会超时(无限超时)。
CoreConnectionPNames.CONNECTION_TIMEOUT ='http.connection.timeout':确定建立连接之前的超时时间(以毫秒为单位)。超时值为零被解释为无限超时。此参数需要java.lang.Integer类型的值。如果未设置此参数,则连接操作不会超时(无限超时)。
我尝试在Android源中搜索这两个超时的默认值,但无法找到。有谁知道这些超时的默认值是什么?我希望获得指向值设置的来源或官方文档的链接(而不仅仅是听取意见)。
答案 0 :(得分:11)
请尝试以下代码部分:
import android.net.http.AndroidHttpClient;
...
AndroidHttpClient h = AndroidHttpClient.newInstance("My http client");
// ...
Log.d(TAG, "http.socket.timeout: " + h.getParams().getParameter("http.socket.timeout"));
Log.d(TAG, "http.connection.timeout: " + h.getParams().getParameter("http.connection.timeout"));
它适用于我的设备:
12-02 16:27:54.119 D/Exam(17121): http.socket.timeout: 60000
12-02 16:27:54.119 D/Exam(17121): http.connection.timeout: 60000
答案 1 :(得分:2)
您是否能够使用以下内容获取默认值(或设置的任何值):
DefaultHttpClient h;
// ...
Log.d(TAG, "http.socket.timeout: " +
h.getParams().getParameter("http.socket.timeout"));
Log.d(TAG, "http.connection.timeout: "
+ h.getParams().getParameter("http.connection.timeout"));
如果真的想知道默认值是什么(而不是仅仅自己设置值),那值得一试。