Я запускаю HTTPUrlConnection в AsyncTask для извлечения данных JSON из API, но кажется, что это просто дает сбой и приводит к сбою моего приложения, не затрагивая мой код catch / finally.Следует отметить, что URL-адрес - https, и если я изменяю его на http, я получаю сообщение о том, что общение в незашифрованном виде запрещено (и то же самое, если я использую любой URL-адрес для этого подключения, даже просто https://www.google.comпротив http://www.google.com, так что, может быть, есть что-то в этом роде.)
В любом случае, я не знаю, как поступить.Если я помещаю запись в журнал в каждой строке, это останавливается и завершается сбоем в строке getResponseCode (), а если я удаляю это, то сразу останавливается и завершается сбоем в строке getInputStream ().Нет разницы, если я уберу таймауты.Любая помощь будет оценена.
public static String getResponseFromHttpUrl(URL url) throws IOException {
HttpURLConnection urlConnection = null;
try {
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(500);
urlConnection.setReadTimeout(500);
int statusCode = urlConnection.getResponseCode();
InputStream in = urlConnection.getInputStream();
Scanner scanner = new Scanner(in);
scanner.useDelimiter("\\A");
boolean hasInput = scanner.hasNext();
if (hasInput) {
return scanner.next();
} else {
return null;
}
}
catch(Exception ex){
Log.d("NetworkUtils", "error in HTTP request");
return null;
}
finally {
Log.d("NetworkUtils", "before disconnect");
if(urlConnection != null) {
urlConnection.disconnect();
}
}
}