Das ist der beste Weg zur Umsetzung-timeout für HTTP-request in Android?

Dass mein Beispiel!

private void onGet( String command, int requestType ){
    HttpGet getRequest = new HttpGet("http://" + getHost() + ":" + getPort() + getServerCgiPath() + command);
    Client.sendRequest(getRequest, requestType, getCallBack() );
}

... Genau dort habe ich meine HttpClient

    public class Client {    
public static void sendRequest(final HttpUriRequest     request, 
                                     int                RequestType,
                                     ResponseListener   callback    ) {
    (new AsynchronousSender(new DefaultHttpClient(), request, RequestType, 
                            new Handler(), new CallbackWrapper(callback))).start();
}

}

...

public class AsynchronousSender extends Thread { 
private DefaultHttpClient httpClient; 
private HttpUriRequest    request;
private Handler           handler;
private CallbackWrapper   wrapper;
private int               requestType;
protected AsynchronousSender( DefaultHttpClient httpClient, HttpUriRequest request,
        int requestType, Handler handler, CallbackWrapper wrapper ) {
    setRequest      (request);
    setHandler      (handler);
    setWrapper      (wrapper);
    setClient       (httpClient);
    setRequestType  (requestType);
}

public void run() {
    try {
        final HttpResponse response;
        final HttpParams httpParams = getClient().getParams();  
        HttpConnectionParams.setConnectionTimeout  ( httpParams, 5000 );
        HttpConnectionParams.setSoTimeout          ( httpParams, 5000 );
        Log.d("Ehome", "before execute reauest");
        response = getClient().execute( getRequest() );
        Log.d("Ehome", "post execute reauest");
        int status = response.getStatusLine().getStatusCode();
        switch( status ){
            case HttpStatus.SC_OK:
                getWrapper().setResponse(response);
                getWrapper().setRequestType(getRequestType());
                getHandler().post(getWrapper());
                break;
            default:
                break;
        }
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private HttpClient getClient() {
    return httpClient;
}

...

InformationsquelleAutor Lunatik | 2011-03-12

Schreibe einen Kommentar