1

http-request のタイムアウトを設定するために HttpConnectionParams が使用されていることはわかりましたが、それを適切に使用する方法がわかりません。すべてのリクエストには setParams(HttpParams p) があります。リクエストごとに http パラメータを設定するのは少し冗長だと思います。私がやりたいのは、 AndroidHttpClient をグローバルな方法で構成することです。これにより、すべてのリクエストが同じ HttpParams 構成を共有するようになります。

これHttpConnectionParams.setConnectionTimeout(params, 1500);は地球規模で機能しますか?

4

1 に答える 1

2

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、最初の接続でのみタイムアウトします。

于 2013-03-18T07:53:04.697 に答える