Java를 사용하여 Android에서 HTTP 응답 시간 초과 설정
원격 서버의 연결 상태를 확인하는 기능은 많은 Android 애플리케이션에서 매우 중요합니다. 그러나 연결 시간 초과가 연장되면 심각한 지연이 발생할 수 있습니다. 이 문서에서는 불필요한 대기를 방지하기 위해 HTTP 응답의 시간 초과를 설정하는 방법을 살펴봅니다.
연결 상태를 확인하려면 다음 코드 조각을 고려하세요.
private void checkConnectionStatus() { HttpClient httpClient = new DefaultHttpClient(); try { String url = "http://xxx.xxx.xxx.xxx:8000/GaitLink/" + strSessionString + "/ConnectionStatus"; Log.d("phobos", "performing get " + url); HttpGet method = new HttpGet(new URI(url)); HttpResponse response = httpClient.execute(method); if (response != null) { String result = getResponse(response.getEntity()); ... } } }
테스트를 위해 서버가 다운된 경우, 실행이 다음 줄에서 중단됩니다.
HttpResponse response = httpClient.execute(method);
이 문제를 해결하려면 시간 초과를 설정하여 대기 기간을 제한할 수 있습니다. 아래 예에서는 두 가지 시간 초과가 설정되었습니다.
HttpGet httpGet = new HttpGet(url); HttpParams httpParameters = new BasicHttpParams(); // Set the connection timeout in milliseconds until a connection is established. int timeoutConnection = 3000; HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); // Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. int timeoutSocket = 5000; HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); HttpResponse response = httpClient.execute(httpGet);
이 코드를 실행하면 3초 후에 연결이 이루어지지 않으면 연결 예외가 발생하고, 5초 후에 소켓 예외가 발생합니다. 서버에서 데이터가 수신되지 않으면 초입니다.
또는 기존 HTTPClient 인스턴스(예: DefaultHttpClient 또는 AndroidHttpClient)가 있는 경우 setParams() 함수를 사용하여 시간 초과 매개변수를 설정할 수 있습니다:
httpClient.setParams(httpParameters);
위 내용은 Java를 사용하여 Android에서 HTTP 응답 시간 초과를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!