So legen Sie HttpResponse Timeout für Android in Java fest
Die Durchführung von Verbindungsstatusprüfungen ist wichtig, aber lange Ausführungstimeouts können frustrierend sein. Sehen wir uns an, wie Sie dieses Problem vermeiden und Ihre Verbindungsverarbeitung optimieren können.
Wenn Sie die DefaultHttpClient-Klasse zum Ausführen von HTTP-Anfragen verwenden, stellen Sie möglicherweise eine erhebliche Verzögerung fest, wenn der Server heruntergefahren wird. Dies liegt daran, dass die Methode httpClient.execute(method) unbegrenzt auf eine Antwort wartet. Um dieses Problem zu beheben, können Sie eine Zeitüberschreitung für Ihre HTTP-Antwort festlegen.
Festlegen der Zeitüberschreitung für die HTTP-Antwort
Zwei Arten von Zeitüberschreitungen können festgelegt werden: eine Zeitüberschreitung für die Verbindung und eine Socket-Timeout. Das Verbindungszeitlimit steuert die Wartezeit für den Verbindungsaufbau, während das Socket-Zeitlimit die Wartezeit auf die Datenübertragung begrenzt.
In Java können Sie diese Zeitlimits einfach mit HttpConnectionParams festlegen. Hier ist ein Beispiel:
HttpGet httpGet = new HttpGet(url); HttpParams httpParameters = new BasicHttpParams(); // Set connection timeout to 3 seconds (3000 milliseconds) HttpConnectionParams.setConnectionTimeout(httpParameters, 3000); // Set socket timeout to 5 seconds (5000 milliseconds) HttpConnectionParams.setSoTimeout(httpParameters, 5000); DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); HttpResponse response = httpClient.execute(httpGet);
Alternativ können Sie, wenn Sie über ein vorhandenes HTTPClient-Objekt verfügen, dessen Parameter konfigurieren:
httpClient.setParams(httpParameters);
Durch das Festlegen geeigneter Timeouts verhindern Sie, dass die Anwendung auf unbestimmte Zeit wartet für eine Verbindung oder Datenantwort. Dies verbessert die Reaktionsfähigkeit und verhindert unnötige Verzögerungen bei der Verbindungsprüfung.
Das obige ist der detaillierte Inhalt vonWie stelle ich Verbindungs- und Socket-Timeouts für HTTP-Anfragen in Android ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!