자카르타 Commons HttpClient 3. x 파일 업로드

2559 단어 CommonsHttpClientHTTP
Android SDK 는 아파 치 를 통합 했다 HttpClient 모듈.주의해 야 할 것 은, 여기 아파 치. HttpClient 모듈 은 HttpClient 입 니 다. 4.0 (org. apache. http. *), 흔히 볼 수 있 는 자카르타 가 아 닙 니 다. Commons HttpClient 3.x(org.apache.commons.httpclient.*)。HttpClient 4.0 파일 형식 을 전달 할 수 없습니다.저 희 는 HttpClient 를 사용 할 수 있 습 니 다. 3. x 파일 업로드 실현.
이 방식 을 사용 하려 면 comons - httpclient - 3.1. jar 를 가 져 와 야 합 니 다. httpmime - 4.1.3. jar 와 comons - codec - 1.3. jar
이런 종류의 가방 들 은 나의 자원 에서 찾 을 수 있다.
단일 파일 업로드:
 try {
            HttpClient httpclient = new DefaultHttpClient();
            //         
            httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
            HttpPost httppost = new HttpPost(url);

            MultipartEntity mpEntity = new MultipartEntity(); //     
            mpEntity.addPart("", new FileBody(file));
            mpEntity.addPart("",new StringBody(""));
            httppost.setEntity(mpEntity);

            HttpResponse response = httpclient.execute(httppost);
            HttpEntity resEntity = response.getEntity();
            if (resEntity != null) {
                Message msg = new Message();
                signTime = ParseXmlUtils.signTime(resEntity.getContent());
                resEntity.consumeContent();
            }
            resEntity.consumeContent();
            httpclient.getConnectionManager().shutdown();

        } catch (Exception e) {
            e.printStackTrace();
            file.delete();
        }

다 중 파일 업로드:
 for(File file:files){
            PostMethod filePost = new PostMethod("this is url");
            try {
                String fileName ="filename";
                //   post     
                Part[] parts = { new StringPart("userId", "userId"),
                        new StringPart("fileName", URLEncoder.encode(URLEncoder.encode(fileName, "utf-8"), "utf-8")),
                        new FilePart("file", file),

                };
                filePost.setRequestEntity(new MultipartRequestEntity(parts,filePost.getParams()));
                HttpClient client = new HttpClient();
                client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
                //        post  
                client.executeMethod(filePost);

            } catch (Exception e) {
                e.printStackTrace();

            } finally {
                filePost.releaseConnection();
            }
        }

좋은 웹페이지 즐겨찾기