2016-03-19 3 views
0

Я пытаюсь вызвать Rest-API в android. Но в большинстве случаев это приводит к ошибке таймаута соединения в реальном устройстве. Из 5 попыток он возвращает мне 4 раза эту ошибку.Ошибка таймаута соединения в Android-устройстве при вызове Rest-APIs

В то же самое время отлично работает в эмуляторе. Я попробовал Rest-APIs, используя разные методы (Volley, HttpClient, Retrofit), но при этом возвратилась такая же ошибка.

Я развернул Rest-API на сервере GoDaddy.

StringRequest strReq = new StringRequest(Method.GET, url, 
      getSuccessListener(listener), getErrorListener(listener)) { 
     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      Map<String, String> params = new HashMap<String, String>(); 
      params.put("Authorization", Authorization); 
      return params; 
     } 
    }; 
    strReq.setRetryPolicy(new DefaultRetryPolicy(15 * 1000, 5, 
      DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
    queue.add(strReq); 
+0

Я думаю, зависит от скорости сетевого подключения. вы уверены, что используете хорошую сеть? .. если да, попробуйте другой URL. – Ancee

+0

@ Ancee Я пробовал много URL. И я использую сеть со скоростью 21 mbps –

+0

, попав на тот же сервер? .. и попытались ли вы использовать эти URL-адреса в веб-браузере? – Ancee

ответ

0

Если вы подключаетесь к REST API, используя свой собственный код, а затем выполните следующие действия.

Увеличьте время соединения с использованием

HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
conn.setReadTimeout(15000); // time is in milliseconds 
conn.setConnectTimeout(15000); // so this will wait for 15 seconds 

Это может решить вашу проблему.

Если вы используете долину затем проверить this answer

+0

Я пробовал оба решения. Но та же проблема снова –

+0

вставьте свой код Rest Connection, а также 'LogCat' .. – ELITE

+0

Я использую код выше, и он возвращает мне« com.android.volley.TimeoutError » –

Смежные вопросы