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

이것은 네트워크에서 정상적인 동작입니다. 나는 매일 그것을 본다. 때때로 첫 번째 연결은 빠르지 만 대부분 느립니다. 다음 요청은 종종 더 빠르지 만 항상 그런 것은 아닙니다. 그것은 너무 느려질 수 있습니다. 속도면에서 보장 할 수는 없습니다.

관련 문제