亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 幫助中心 > 正文

使用HttpClient實現文件的上傳下載方法

2024-07-09 22:41:11
字體:
來源:轉載
供稿:網友

1 HTTP

HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程序需要直接通過 HTTP 協議來訪問網絡資源。

雖然在 JDK 的 java.net 包中已經提供了訪問 HTTP 協議的基本功能,但是對于大部分應用程序來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,并且它支持 HTTP 協議最新的版本和建議。

一般的情況下我們都是使用Chrome或者其他瀏覽器來訪問一個WEB服務器,用來瀏覽頁面查看信息或者提交一些數據、文件上傳下載等等。所訪問的這些頁面有的僅僅是一些普通的頁面,有的需要用戶登錄后方可使用,或者需要認證以及是一些通過加密方式傳輸,例如HTTPS。目前我們使用的瀏覽器處理這些情況都不會構成問題。但是一旦我們有需求不通過瀏覽器來訪問服務器的資源呢?那該怎么辦呢?

下面以本地客戶端發起文件的上傳、下載為例做個小Demo。HttpClient有兩種形式,一種是org.apache.http下的,一種是org.apache.commons.httpclient.HttpClient。

2 文件上傳

文件上傳可以使用兩種方式實現,一種是PostMethod方式,一種是HttpPost方式。兩者的處理大同小異。PostMethod是使用FileBody將文件包裝流包裝起來,HttpPost是使用FilePart將文件流包裝起來。在傳遞文件流給服務端的時候,都可以同時傳遞其他的參數。

2.1 客戶端處理

2.1.1 PostMethod方式

將文件封裝到FilePart中,放入Part數組,同時,其他參數可以放入StringPart中,這里沒有寫,只是單純的將參數以setParameter的方式進行設置。此處的HttpClient是org.apache.commons.httpclient.HttpClient。

 

public void upload(String localFile){    File file = new File(localFile);    PostMethod filePost = new PostMethod(URL_STR);    HttpClient client = new HttpClient();        try {      // 通過以下方法可以模擬頁面參數提交      filePost.setParameter("userName", userName);      filePost.setParameter("passwd", passwd);      Part[] parts = { new FilePart(file.getName(), file) };      filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams()));            client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);            int status = client.executeMethod(filePost);      if (status == HttpStatus.SC_OK) {        System.out.println("上傳成功");      } else {        System.out.println("上傳失敗");      }    } catch (Exception ex) {      ex.printStackTrace();    } finally {      filePost.releaseConnection();    }  }

記得搞完之后,要通過releaseConnection釋放連接。

2.1.2 HttpPost方式

這種方式,與上面類似,只不過變成了FileBody。上面的Part數組在這里對應HttpEntity。此處的HttpClient是org.apache.http.client.methods下的。

public void upload(String localFile){    CloseableHttpClient httpClient = null;    CloseableHttpResponse response = null;    try {      httpClient = HttpClients.createDefault();            // 把一個普通參數和文件上傳給下面這個地址 是一個servlet      HttpPost httpPost = new HttpPost(URL_STR);            // 把文件轉換成流對象FileBody      FileBody bin = new FileBody(new File(localFile));      StringBody userName = new StringBody("Scott", ContentType.create(          "text/plain", Consts.UTF_8));      StringBody password = new StringBody("123456", ContentType.create(          "text/plain", Consts.UTF_8));      HttpEntity reqEntity = MultipartEntityBuilder.create()          // 相當于<input type="file" name="file"/>          .addPart("file", bin)                    // 相當于<input type="text" name="userName" value=userName>          .addPart("userName", userName)          .addPart("pass", password)          .build();      httpPost.setEntity(reqEntity);      // 發起請求 并返回請求的響應      response = httpClient.execute(httpPost);            System.out.println("The response value of token:" + response.getFirstHeader("token"));              // 獲取響應對象      HttpEntity resEntity = response.getEntity();      if (resEntity != null) {        // 打印響應長度        System.out.println("Response content length: " + resEntity.getContentLength());        // 打印響應內容        System.out.println(EntityUtils.toString(resEntity, Charset.forName("UTF-8")));      }            // 銷毀      EntityUtils.consume(resEntity);    }catch (Exception e){      e.printStackTrace();    }finally {      try {        if(response != null){          response.close();        }      } catch (IOException e) {        e.printStackTrace();      }            try {        if(httpClient != null){          httpClient.close();        }      } catch (IOException e) {        e.printStackTrace();      }    }  }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久深夜福利免费观看| 日韩欧美在线视频日韩欧美在线视频| 欧美在线一区二区视频| 波霸ol色综合久久| 亚洲天堂日韩电影| 欧美性xxxx极品hd欧美风情| 91色琪琪电影亚洲精品久久| 日韩在线中文视频| 亚洲综合成人婷婷小说| 国产成人精品视| 777午夜精品福利在线观看| 亚洲护士老师的毛茸茸最新章节| 国产美女精品视频免费观看| 欧美激情极品视频| 国产欧美在线看| 亚洲第一视频在线观看| 日韩精品在线播放| 欧美日韩中国免费专区在线看| 久久免费高清视频| 国产精品极品美女在线观看免费| 久久久噜噜噜久久| 国产精品成人一区二区| 国产69久久精品成人| 亚洲一区二区久久| 91精品久久久久久久| 亚洲午夜精品久久久久久性色| 成人妇女免费播放久久久| 精品视频在线播放| 久久99久国产精品黄毛片入口| 久久99热这里只有精品国产| 精品国产欧美成人夜夜嗨| 成人午夜小视频| 欧美综合国产精品久久丁香| 国产精品电影网| 色偷偷91综合久久噜噜| 91精品国产91久久久久久吃药| www.久久久久久.com| 国产欧美婷婷中文| 欧美一级电影久久| 欧美日韩成人在线观看| 亚洲自拍偷拍色图| 欧美贵妇videos办公室| 欧美日韩中文字幕在线| 日韩中文字幕在线精品| 国产精品黄页免费高清在线观看| 911国产网站尤物在线观看| 亚洲高清福利视频| 日韩av高清不卡| 亚洲精品在线91| 性亚洲最疯狂xxxx高清| 中日韩午夜理伦电影免费| 成人亲热视频网站| 亚洲精品自拍偷拍| 国内精品一区二区三区| 97国产精品视频| 欧美激情一级欧美精品| 国产精品老牛影院在线观看| 久久五月天综合| 国产精品综合网站| 欧美夫妻性视频| 国产91露脸中文字幕在线| 日韩久久精品成人| 成人福利视频网| 中文字幕日韩av电影| 成人女保姆的销魂服务| 久久久在线视频| 亚洲国产精品电影在线观看| 亚洲精品免费在线视频| 欧美理论电影在线播放| 色偷偷91综合久久噜噜| 亚洲午夜精品久久久久久久久久久久| 精品久久久一区二区| 日韩欧美在线一区| 日韩在线播放av| 中文字幕国产精品久久| 国产一区二区动漫| 精品亚洲夜色av98在线观看| 国产伦精品一区二区三区精品视频| 中文字幕亚洲欧美在线| 欧美成人免费播放| 精品高清一区二区三区| 久久天天躁狠狠躁夜夜躁| 色综合伊人色综合网| 国产精品久久久久久久久久小说| yw.139尤物在线精品视频| 68精品国产免费久久久久久婷婷| 亚洲美女精品成人在线视频| 国产精品99久久久久久久久久久久| 91香蕉嫩草神马影院在线观看| 最近的2019中文字幕免费一页| 日韩成人激情视频| 国产精品久久久久999| 成人444kkkk在线观看| 欧美成人一区在线| 影音先锋日韩有码| 国产精品久久999| 亚洲人成啪啪网站| 热久久这里只有精品| 精品国产一区二区三区四区在线观看| 亚洲国产精品大全| 国产精品人人做人人爽| 亚洲精品一区av在线播放| 国产成人一区三区| 91亚洲一区精品| 成人午夜在线视频一区| 日韩欧美高清在线视频| 欧美大学生性色视频| 亚洲国模精品私拍| 成人精品一区二区三区电影黑人| 国产精品第一页在线| 久久成人人人人精品欧| 国产一区二区三区在线观看视频| 午夜精品久久久久久久99黑人| 欧美日本黄视频| 国产精品一区二区女厕厕| 国产视频久久网| 日韩免费看的电影电视剧大全| 日韩电影免费观看在线| 成人欧美一区二区三区在线湿哒哒| xxx成人少妇69| 欧美激情一区二区三区久久久| 91中文字幕一区| 97精品久久久| 91人人爽人人爽人人精88v| 精品日韩中文字幕| 欧美性生交大片免网| 欧美日韩激情视频8区| 国产精品日韩欧美| 亚洲精品免费网站| 欧美巨大黑人极品精男| 国产亚洲人成网站在线观看| 亚洲人成电影网站色…| 2019最新中文字幕| 91久久久久久国产精品| 亚洲香蕉在线观看| 91视频国产精品| 国产欧美精品一区二区三区介绍| 不卡中文字幕av| 日韩精品极品视频免费观看| 国产精品久久久久久久电影| 欧美大奶子在线| 国产成人综合av| 精品动漫一区二区三区| 国产精品∨欧美精品v日韩精品| 亚洲一区二区中文字幕| 国产精品久久久久久久久粉嫩av| 91亚洲精品一区二区| 日韩va亚洲va欧洲va国产| 精品国产视频在线| 国产精品视频一区国模私拍| 成人精品一区二区三区电影黑人| 中文字幕日韩精品有码视频| 亚洲成人亚洲激情| 国产精品激情av电影在线观看| 欧美精品videos性欧美| 午夜精品久久久久久久白皮肤| 久久男人资源视频| 欧美性猛交xxxx久久久| 亚洲视频在线看| 久久久久中文字幕| 久久久999精品免费| 国产精品午夜国产小视频| 久久久久久久一区二区| 久久久久久久亚洲精品|