android - HttpConnectionParams.setConnectionTimeout混淆

标签 android http connection-timeout

我知道httpconnectionparams用于设置http请求的超时,但我不知道如何正确使用它。每个请求都有set params(httpparams p)-我认为在每个请求上设置http参数有点多余。我更愿意做的是以全局方式配置androidhttpclient,以便每个请求共享相同的httpparams配置。
这是否在全球范围内运作?

最佳答案

HttpConnectionParams是要使用的类:
示例代码(与您的代码一样未完成:-)

HttpClient httpClient = new DefaultHttpClient();
final HttpParams httpParams = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);

所以您必须这样做(不必深入检查代码):
    public class Client {    

        public static void sendRequest(final HttpUriRequest request, 
                                       int RequestType,
                                       ResponseListener callback) {
        HttpClient httpClient = new DefaultHttpClient();
        final HttpParams httpParams = httpClient.getParams();
        HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
        HttpConnectionParams.setSoTimeout(httpParams, 5000);
        (new AsynchronousSender(httpClient, request, RequestType, 
                            new Handler(), new CallbackWrapper(callback))).start();

}
编辑:
setSoTimeout()本质上是相同的,但它将等待的不仅仅是初始连接。因此,您将检查每个数据包是否超时,而setConnectionTimeout仅在初始连接时超时。

关于android - HttpConnectionParams.setConnectionTimeout混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15471963/

相关文章:

java - 创建重试模板以在连接超时和读取超时时重试

python - pymodbus TcpClient超时

php - curl 超时小于 1000 毫秒总是失败?

android - 在我们的 android 应用程序中导入 gmail 帐户配置

android - 为什么我的 spannable 没有显示?

java - 如何使用 telnet 与在 glassfish 上运行的 java servlet 进行交互?

c# - 从 wpf 调用 api 时 client.GetAsync 调用挂起

android - 如何仅在 Android Studio 的主要版本中检查更新?

android - 如何在 Android Studio 中显示依赖关系树?

php - 2 个不同的服务器如何在同一个 "machine"中通信?