본문 바로가기
개발/안드로이드

HttpClient 4.1.1 버전에서 파일 첨부 Request 요청 만들기

by darksilber 2011. 8. 24.
반응형
출처 - http://javaseed.com/tc/ccj/203


기본으로 아래와 같이 처리하면 파일 첨부와 코멘트 정보를 서버로 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--

반응형

댓글