При разработке приложения столкнулся с исключением android.os.NetworkOnMainThreadException, при этом на тестах все работает замечательно, данные скачиваются корректно.
Что я сделал:
1. Добавил разрешение в манифест
2. Протестировал код:
@Test
public void checkCorrectURL() {
int code = Utils.getCodeResponse("https://mail.ru");
assertEquals(200, code);
}
@Test
public void readJsonFromURL() {
String json = Utils.readJsonFromURL("https://api.github.com/users");
System.out.println(json);
}
@Test
public void isJSONValid() {
boolean isValid = Utils.isJSONValid(jsonString);
boolean isNotValid = Utils.isJSONValid("this json string is not valid!");
assertTrue(isValid);
assertFalse(isNotValid);
}
@Test
public void checkValidURLImage() {
String correctLink = "https://avatars.githubusercontent.com/u/2?v=4";
String incorrectLink = "https://avatars.githubusercntent.com/u/?v=4";
int code1 = Utils.getCodeResponse(correctLink);
int code2 = Utils.getCodeResponse(incorrectLink);
assertEquals(200, code1);
assertNotEquals(200, code2);
}
@Test
public void createItemsList() {
List<Data> users = Utils.createItemList(WhoIs.USER, "https://api.github.com/users");
List<Data> teams = Utils.createItemList(WhoIs.TEAM, "https://api.github.com/organizations");
assertNotNull(users);
assertNotNull(teams);
for (Data data : users)
System.out.println(data.toString());
for (Data data : teams)
System.out.println(data.toString());
}
Но при вызовет статичного метода для создания массива данных, сразу возникает исключение:
List <Data> items = Utils.createItemList(WhoIs.USER, "https://api.github.com/users");