Java 捕获AsyncTask中HttpUrlConnection的错误
我正在寻找处理HttpURLConnection中错误的最佳实践,特别是在主机不可用的情况下。我必须如何更改我的来源Java 捕获AsyncTask中HttpUrlConnection的错误,java,android,Java,Android,我正在寻找处理HttpURLConnection中错误的最佳实践,特别是在主机不可用的情况下。我必须如何更改我的来源 protected String doInBackground(String... strings) { URL aURL; String line; HttpURLConnection connection; BufferedReader reader; StringBuilder stringBuilder = null;
protected String doInBackground(String... strings) {
URL aURL;
String line;
HttpURLConnection connection;
BufferedReader reader;
StringBuilder stringBuilder = null;
try {
aURL = new URL(strings[0]);
connection = (HttpURLConnection) aURL.openConnection();
InputStream aInputStream = connection.getInputStream();
BufferedInputStream aBufferedInputStream = new BufferedInputStream(aInputStream);
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
stringBuilder = new StringBuilder();
while ((line = reader.readLine()) != null)
{
stringBuilder.append(line);
}
} catch (IOException e) {
Log.d("svc", e.toString());
}
return stringBuilder.toString();
}
您将使用connection.getResponseCode()获得不同的响应代码
检查主机的响应代码不可用,您将被设置。那么,异常被捕获-您希望发生什么?由于您最初没有分配
stringBuilder
,如果您有异常,那么您将在返回stringBuilder.toString()时遇到问题代码>(我想是NullPointerException)嗨,我想返回结果-好的,我可以通过return语句来实现,但对我来说更重要的是:如何捕获连接(connection=(HttpURLConnection)aURL.openConnection();)引发的异常,或者一个catch块就足以做到这一点吗?但是如果服务器不可用(网络不稳定),会发生什么呢。在这种情况下,getResponseCode()的结果是什么?除了HttpStatus.SC\u OK