마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

HttpResponse response = client.execute(request); 속도 느림 현상

0 추천
String rep_tel_1=""; 
SQLiteDatabase db; 
db = mHelper.getReadableDatabase(); 
Cursor cursor; 
cursor = db.rawQuery("SELECT uni_ara, jel_num, jel_siz, rep_tel_1, lat, lon, org_fle_nam, uns_nam FROM oceanjelly", null); 
File file =null; 
HttpClient client = new DefaultHttpClient(); 
HttpPost request = new HttpPost(); 
FileBody fileBody=null; 
try { 
   String url = "주소"; 
   request.setURI(new URI(url)); 
   MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
   StringBody sb1 = null; 
   StringBody sb2 = null; 
   StringBody sb3 = null; 
   StringBody sb5 = null; 
   StringBody sb6 = null; 
   StringBody sb7 = null; 
   while (cursor.moveToNext()) { 
      sb1=new StringBody(cursor.getString(0)); 
      multipartEntity.addPart("uni_ara", sb1); 
      sb2=new StringBody(cursor.getString(1)); 
      multipartEntity.addPart("jel_num", sb2); 
      sb3=new StringBody(cursor.getString(2)); 
      multipartEntity.addPart("jel_siz", sb3); 
      rep_tel_1=cursor.getString(3); 
      sb5=new StringBody(cursor.getString(4)); 
      multipartEntity.addPart("lat", sb5); 
      sb6=new StringBody(cursor.getString(5)); 
      multipartEntity.addPart("lon", sb6); 
      //String fileName=cursor.getString(6).substring(cursor.getString(6).lastIndexOf("/")+1); 
      file=new File(cursor.getString(6)); 
      fileBody=new FileBody(file); 
      multipartEntity.addPart("uploadedFile",fileBody); 
      sb7=new StringBody(URLEncoder.encode(cursor.getString(7),"utf-8")); 
      multipartEntity.addPart("uns_nam", sb7); 
   } 
   StringBody sb8=new StringBody(agt_id); 
   StringBody sb9=new StringBody(ser_yn); 
   StringBody sb10=new StringBody(rep_tel_1); 
   StringBody sb11=new StringBody("1"); 
   multipartEntity.addPart("agt_id", sb8); 
   multipartEntity.addPart("ser_yn", sb9); 
   multipartEntity.addPart("rep_tel_1", sb10); 
   multipartEntity.addPart("rep_knd", sb11); 
   request.setEntity(multipartEntity); 
   //이쪽 부분에서 시간 잡아 먹음 
   HttpResponse response = client.execute(request); 
   //**** 
   HttpEntity resEntity = response.getEntity(); 
   str = EntityUtils.toString(resEntity).trim();  

안드로이드 코드구요. 글자제한으로 다는 안올렸습니다. try catch다 정상적으로 있습니다.

중간에 느리다고 주석 처리된 부분이 문제점인데요. 디버그 해봤을때 저 부분에서 시간을 많이 잡아 먹습니다.

 

웹 서버에 db입력된 부분 확인 할수 있는데 버튼을 누르면 바로 입력은됩니다. 프로그래스바가

 

계속 돌면서 HttpResponse response = client.execute(request); 이 문장이 끝나기를 기다립니다.

그래서 시간을 잡아 먹는듯 하구요.

원래 이렇게 느리진 안을거 같은데 4~5분정도 걸립니다. 해결방법이 없나요?

익명사용자 님이 2014년 7월 8일 질문

2개의 답변

0 추천
그냥 서버가 느린거 같은데요;;
갈무리 (12,430 포인트) 님이 2014년 7월 8일 답변
0 추천
익명사용자 님이 2014년 7월 8일 답변
...