Genymotion не может подключиться к серверу?
У меня есть приложение, которое отправляет http-запрос на сервер и получает JSON для обработки. Я тестирую его как на физическом устройстве, так и на Genymotion.
Приложение работает нормально на физическом устройстве, но на Genymotion выдает NetworkOnMainThreadException
,
Я отследил исключение, и это часть проблемы:
..
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params,"UTF-8"));
// Exception on this line:
HttpResponse httpResponse = httpClient.execute(httpPost);
//
HttpEntity httpEntity = httpResponse.getEntity();
...
Похоже, что Genymotion не может подключиться к серверу для выполнения запроса. Но его браузер загружает сайты просто отлично.
Итак, кто-нибудь знает, что здесь происходит?
1 ответ
Я нашел в чем проблема:
Как объясняется в этом ответе, поскольку API 11, NetworkOnMainThreadException
выбрасывается для информирования с использованием длительных задач (например, http-связей) в главном потоке.
Используя AsyncTask
проблема была решена и все работало как надо.