반응형
출처 - http://pstory.tistory.com/62
파일과 파라메터 정보 전송 (post)
파일과 파라메터 정보 전송 (post)
//----------------------------------------------------//파일 폼 데이터 스레드//----------------------------------------------------private class AsyncFileThread extends Thread {String address;File file;public AsyncFileThread(String addr, File _file){address = addr;file = _file;}public void run(){httpclient = new DefaultHttpClient();try {HttpPost post = new HttpPost(address);//헤더 설정post.setHeader("Connection", "Keep-Alive");post.setHeader("Accept-Charset", "UTF-8");post.setHeader("ENCTYPE", "multipart/form-data");//멀티파트 엔티티 생성, 파일 이름이 한글일 경우 Charset을 정하는 게 좋음MultipartEntity multipartContent = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, null, Charset.forName("UTF-8"));//파일 붙임FileBody cbFile = new FileBody(file);multipartContent.addPart("file1", cbFile);//파라메터 for(NameValuePair nvp:nameValues){multipartContent.addPart(nvp.getName(), new StringBody(URLEncoder.encode(nvp.getValue(), HTTP.UTF_8)));}//파일 사이즈multipartContent.addPart("fileSize", new StringBody(String.valueOf(file.length())));//HttpPost Entity에 연결post.setEntity(multipartContent);//10초 응답시간 타임아웃 설정HttpParams params = httpclient.getParams();params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);HttpConnectionParams.setConnectionTimeout(params, 10000);HttpConnectionParams.setSoTimeout(params, 10000);//org.apache.http.client.HttpClient 로 실행httpclient.execute(post, responseHandler);} catch (ConnectTimeoutException e){// 타임 아웃 연결 에러시Message message = resultHandler.obtainMessage();Bundle bundle = new Bundle();bundle.putString(RESULT, TIMEOUT_RESULT);message.setData(bundle);resultHandler.sendMessage(message);stringData = e.toString();} catch (Exception e){// 기타 오류시Message message = resultHandler.obtainMessage();Bundle bundle = new Bundle();bundle.putString(RESULT, ERROR_RESULT);message.setData(bundle);resultHandler.sendMessage(message);stringData = e.toString();} finally {httpclient.getConnectionManager().shutdown();}}} |
반응형
'개발 > 안드로이드' 카테고리의 다른 글
| [안드로이드]EditText 소프트 키보드가 열린상태에서 BACK KEY Disable하는법 (0) | 2011.08.31 |
|---|---|
| [안드로이드] 한글에 Bold 속성 주기 (0) | 2011.08.31 |
| HttpClient 4.1.1 버전에서 파일 첨부 Request 요청 만들기 (0) | 2011.08.24 |
| POST방식으로 파일과 텍스트 함께 전송 multipart/form-data이용 (0) | 2011.08.24 |
| 안드로이드(android)에서 java 의 HttpClient 4.0 클래스를 이용한 네트웍 프로그램 구현 (0) | 2011.08.24 |
댓글