0
String urlStr = "nana.com/nana/api/v1" 
     HttpURLConnection conn = null; 
BufferedReader rd = null; 
StringBuilder sb = null; 
try { 
    URL url = new URL(urlStr); 
    conn = (HttpURLConnection) url.openConnection(); 

    if (conn.getResponseCode() != 200) { 
     throw new IOException(conn.getResponseMessage()); 
    } 
    else { 

    rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    sb = new StringBuilder(); 
    String line; 
    while ((line = rd.readLine()) != null) { 
     sb.append(line); 
    } 
    rd.close(); 

    conn.disconnect(); 
    } 
} catch (IOException i) { 
    i.printStackTrace(); 
       }catch (Exception e) { 
    e.printStackTrace(); 

Это мое соединение, и я действительно не хочу использовать apache. Я хочу, чтобы мое приложение отображало какое-то сообщение об ошибке, если сервер недоступен, но вместо этого он падает, и я как бы не из идей.Приложение аварийно завершает работу, когда сервер недоступен. Как установить время подключения для httpurlconnection?

ответ

0

Попробуйте этот путь

try { 
      String urlStr = "nana.com/nana/api/v1"; 
      HttpURLConnection conn = null; 
      BufferedReader rd = null; 
      StringBuilder sb = null; 

      URL url = new URL(urlStr); 
      conn = (HttpURLConnection) url.openConnection(); 
      conn.setRequestProperty("User-Agent", "Android Application"); 
      conn.setRequestProperty("Connection", "close"); 
      conn.setConnectTimeout(10 * 1000); 
      conn.connect(); 
      if (conn.getResponseCode() == 200) { 
       rd = new BufferedReader(new InputStreamReader(
         conn.getInputStream())); 
       sb = new StringBuilder(); 
       String line; 
       while ((line = rd.readLine()) != null) { 
        sb.append(line); 
       } 
       rd.close(); 

       conn.disconnect(); 

      }else{ 
       throw new IOException(conn.getResponseMessage()); 
      } 
     } catch (Throwable e) { 
      e.printStackTrace(); 
     } 
+0

спасибо за попытку помочь, но она до сих пор выходит из строя один и тот же путь:/ –

0
This method is for default timeout when there is a problem in the connection eg socket timeout or connection  timeout. 
public static DefaultHttpClient returnHttpClient() { 
HttpParams httpParameters = new BasicHttpParams(); 
// Set the timeout in milliseconds until a connection is established. 
// The default value is zero, that means the timeout is not used. 
int timeoutConnection = 60000; 
HttpConnectionParams.setConnectionTimeout(httpParameters, 
     timeoutConnection); 
// Set the default socket timeout (SO_TIMEOUT) 
// in milliseconds which is the timeout for waiting for data. 
int timeoutSocket = 600000; 
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); 

return new DefaultHttpClient(httpParameters); 
} 
+0

спасибо за ответ, но я использую HttpURLConnection –

Смежные вопросы