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
Du musst angemeldet sein, um einen Kommentar abzugeben.
HttpConnectionParams ist die Klasse zu verwenden:
Beispiel-code (als unvollendete wie deins :-))
So haben Sie es zu tun so etwas wie dieses (ohne die überprüfung Ihrer code-tief):
}
Sollte es funktionieren - vielleicht haben Sie zu veröffentlichen, wie Sie es versucht!
Tut mir Leid, ich habe verbessert mein Beispiel.
Ich verstehe nicht, Ihren code! Der relevante Teil ist, wo Sie erstellen Ihre httpClient. Auf diesem client können Sie ändern Sie die HttpParams. Das sollte funktionieren. Wenn Sie diesen code (vielleicht ist es Ihr
getClient
) ich vielleicht auch Ihnen helfen kann.Ich erstellte client und danach ausgeführt wurde, der thread wo ich ausgeführt Anfrage!
InformationsquelleAutor FrVaBe