Java 当服务器不可用时,应用程序崩溃。如何设置httpurlconnection的connectiontimeout?
这是我的连接,我真的不想使用apache。如果无法访问服务器,我希望我的应用程序显示一些错误消息,但是服务器崩溃了,我有点不知所措。试试这种方法Java 当服务器不可用时,应用程序崩溃。如何设置httpurlconnection的connectiontimeout?,java,android,exception,httpurlconnection,connection-timeout,Java,Android,Exception,Httpurlconnection,Connection Timeout,这是我的连接,我真的不想使用apache。如果无法访问服务器,我希望我的应用程序显示一些错误消息,但是服务器崩溃了,我有点不知所措。试试这种方法 String urlStr = "nana.com/nana/api/v1" HttpURLConnection conn = null; BufferedReader rd = null; StringBuilder sb = null; try { URL url = new URL(urlStr); conn =
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();
感谢您的帮助,但它仍然以同样的方式崩溃:/
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();
}
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);
}