기본으로 아래와 같이 처리하면 파일 첨부와 코멘트 정보를 서버로 upload 할수 있다.
참조 URL
- http://hc.apache.org/httpcomponents-client-ga/examples.html필요 Library
- httpclient 4.1.1 버전 (httpclient-4.1.1.jar 및 관련 jar 파일)
- httpmime4.1.1 버전 (httpmime-4.1.1.jar 및 관련 jar 파일)HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = null;
try {
httppost = new HttpPost(url);
} catch (Exception e) {
throw new Exception();
}
FileBody bin = new FileBody(new File("c:/myfile.data"));
StringBody comment = new StringBody("A binary file of some kind");
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("bin", bin);
reqEntity.addPart("comment", comment);
httppost.setEntity(reqEntity);
ResponseHandler responseHandler = new BasicResponseHandler();
String bodyString = httpclient.execute(httppost, responseHandler);
httpclient.getConnectionManager().shutdown();
참고로 파일 첨부 request요청시 아래와 같은 MIME 스트링이 서버로 전송된다.
이를 전달받은 서버는 MIME 형태를 파싱해서 파일을 서버로 저장하는 처리를 하게 된다.
POST http://javaseed.com/tc/ccj/owner/entry/attachmulti/0?&TSSESSION=42b3c000253aa00070e800005cf9e000 HTTP/1.1
Accept: text/*
Content-Type: multipart/form-data; boundary=----------ei4Ij5ae0ae0GI3cH2Ef1gL6GI3Ef1
User-Agent: Shockwave Flash
Host: javaseed.com
Content-Length: 425
Connection: Keep-Alive
Pragma: no-cache
Cookie: TSSESSIONjavaseedcomtc=42b3c000253aa00070e800005cf9e000
------------ei4Ij5ae0ae0GI3cH2Ef1gL6GI3Ef1
Content-Disposition: form-data; name="Filename"
test.txt
------------ei4Ij5ae0ae0GI3cH2Ef1gL6GI3Ef1
Content-Disposition: form-data; name="Filedata"; filename="test.txt"
Content-Type: application/octet-stream
abcd
efg
------------ei4Ij5ae0ae0GI3cH2Ef1gL6GI3Ef1
Content-Disposition: form-data; name="Upload"
Submit Query
------------ei4Ij5ae0ae0GI3cH2Ef1gL6GI3Ef1--
'개발 > 안드로이드' 카테고리의 다른 글
[안드로이드] 한글에 Bold 속성 주기 (0) | 2011.08.31 |
---|---|
ANDROID 파일과 파라메터 정보 전송 (post) (0) | 2011.08.26 |
POST방식으로 파일과 텍스트 함께 전송 multipart/form-data이용 (0) | 2011.08.24 |
안드로이드(android)에서 java 의 HttpClient 4.0 클래스를 이용한 네트웍 프로그램 구현 (0) | 2011.08.24 |
Android HTTP GET, POST and Multipart POST requests (0) | 2011.08.24 |
댓글