2014-09-14 3 views
0

Кажется, у меня проблемы с Android HTTPClient несколько раз быстрее, и в других случаях может потребоваться несколько секунд, чтобы вернуть результат или сказать, что соединение было отказано.Android HTTPClient иногда медленное соединение?

В качестве теста я пробовал различные веб-хосты и прямой IP-адрес также без эффекта, тестирование осуществляется на устройстве, подключенном через Wi-Fi.

Код также работает на резьбе, а не на основной нити.

кода я использую выглядит следующим образом:

String strURL = "http://www.example.com/webservice/index.php"; 

List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>(2); 
nameValuePairList.add(new BasicNameValuePair("command", "saveFave")); 
nameValuePairList.add(new BasicNameValuePair("rid", strID)); 

HttpParams params = new BasicHttpParams(); 
params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); 
params.setParameter(CoreProtocolPNames.USER_AGENT, "AppName_Android"); 

DefaultHttpClient hc = new DefaultHttpClient(params); 
HttpPost post = new HttpPost(strURL); 

try { 
    post.setEntity(new UrlEncodedFormEntity(nameValuePairList)); 
} catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
} 


try { 
    hc.setRedirectHandler(null); 
    HttpResponse rp = hc.execute(post); 
    Log.d("Http Post Response:", rp.toString()); 

    if (rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)    
     jsonData = EntityUtils.toString(rp.getEntity(), HTTP.UTF_8); 

     Log.v(TAG, "JSON Response " + jsonData); 

} catch (Exception e) { 
    Log.v(TAG, "error " + e.getMessage()); 
} 

ответ

0

вы должны быть в состоянии Твика таймаутов в отладке, чтобы бросить ошибки, так что вы можете получить больше информации о причине ...

this.config = RequestConfig.custom() 
     .setConnectTimeout(6 * 1000) 
     .setConnectionRequestTimeout(30 * 1000) 
     .setSocketTimeout(30 * 1000)     
     .build(); 
0

Это нормальное поведение в сетях. Я вижу это каждый день. Иногда первое соединение происходит быстро, но в основном медленное. Следующий запрос идет быстрее, но не всегда. Он может пойти медленнее. Для скорости нет гарантии.

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