Привет, я уже задавал этот вопрос, но на этот раз я проверяю этот метод, чтобы все сертификаты не вызывали проблем.
Я разрабатываю приложение, которое есть и на iPhone. Проблема с запросами API. Я устанавливаю тайм-ауты для всех запросов. Иногда бывают перерывы от 30 до 60 секунд. Похоже, что приложение делает пару запросов, а затем прерывается, все время истекает, примерно через 45 секунд все в порядке.
Я не знаю, это проблема сервера или андроида.
Эта проблема не возникает на iPhone с IOS 5, но появляется и на IOS 4.
Я проверяю наличие HttpClient и HttpsURLConnection.
Соединение https, также пытался напрямую IP-адрес.
Все запросы имеют одну и ту же проблему, все запросы находятся в асинхронных задачах.
Все они выглядят одинаково:
DefaultHttpClient client = new HttpSupport().getNewHttpClient();
client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST,AuthScope.ANY_PORT),new UsernamePasswordCredentials(user, pass));
HttpGet httget = new HttpGet("xxxxxxxxxxxxxxxxxxxxxxx");
httget.setHeader("Accept", "application/json");
HttpResponse respond = null;
try
{
respond = client.execute(httget);
}
catch (ClientProtocolException e)
{
Log.e(TAG,"getEvents, ClientProtocolException");
}
catch (IOException e)
{
Log.e(TAG,"getEvents, IOException: " + e.getMessage());
}
Код моего класса HttpSupport находится в моем предыдущем вопросе: Android — API-запросы
Это может быть ошибка сервера? Спасибо за любую помощь.
Недавно я заметил, что приложение зависает на client.execute... попробуйте сделать так: android httpclient зависает на втором запросе к серверу (время подключения истекло), но это не поможет . Может быть, это не ошибка API, а Android как есть. Это приложение очень часто указывает API, но для большинства запросов все в порядке.
До сих пор не могу избавиться от 30-45 секунд зависаний.
Сегодня я снова протестировал приложение и заметил, что ошибка возникает только при подключении к Wi-Fi на планшете Samsung с версией 3.2. На Wildfire с 2.3.7 (wi-fi и 3g) вроде все нормально. Я не говорю, что проблема не возникает на мобильных устройствах, но пока я тестировал, я не заметил тайм-аутов.