隨筆 - 0, 文章 - 264, 評論 - 170, 引用 - 0
          數據加載中……

          HttpClient PostMethod模擬帶文件上傳+普通字段的http請求(可解決文件為網絡文件的問題)

          代碼示例:
          postMethod = new PostMethod("http://api.t.sina.com.cn/statuses/upload.xml");
          Part[] parts 
          = {new StringPart("source""695132533"), new StringPart("status", URLEncoder.encode(status, "utf-8")), new FilePart("pic", new File("1.jpg"))};
          postMethod.setRequestEntity(
          new MultipartRequestEntity(parts, postMethod.getParams()));

          上例中,MultipartRequestEntity封裝了普通字段和文件字段。

          另注:由于自己的應用中,文件塊不是在本地的,而是來源于網絡,所以FilePart的創建,改為以下代碼:
          URL url = new URL(picUrl);
          URLConnection connection = url.openConnection();
          InputStream is = connection.getInputStream();
          /**  這么寫不對
          int length = is.available();
          byte[] buffer = new byte[length];
          is.read(buffer);
          */

          //應該這樣寫
          ByteArrayOutputStream baos = new ByteArrayOutputStream();
          int len = 0;
          byte[] b = new byte[1024];
          while ((len = is.read(b, 0, b.length)) != -1) {
              baos.write(b, 0, len);
          }
          byte[] buffer =  baos.toByteArray();
          new
           FilePart("pic"new ByteArrayPartSource("pic", buffer))

          posted on 2011-01-19 13:55 小一敗涂地 閱讀(6097) 評論(1)  編輯  收藏 所屬分類: 開源工具、插件相關

          評論

          # re: HttpClient PostMethod模擬帶文件上傳+普通字段的http請求(可解決文件為網絡文件的問題)[未登錄]  回復  更多評論   

          new FilePart("pic", new ByteArrayPartSource("pic", buffer))

          如果new ByteArrayPartSource(文件名, buffer)) 文件名為中文會出現亂碼問題。
          2013-06-06 13:53 | test
          主站蜘蛛池模板: 综艺| 乐安县| 长白| 海安县| 星子县| 汉沽区| 尚志市| 类乌齐县| 凤凰县| 巴彦县| 福鼎市| 蕉岭县| 汝城县| 平泉县| 万年县| 丹东市| 乐清市| 房产| 巴马| 泾源县| 河东区| 阜康市| 恭城| 延津县| 长垣县| 天祝| 汕头市| 环江| 宜黄县| 城市| 平湖市| 桃源县| 吐鲁番市| 方城县| 岑巩县| 黄骅市| 兰西县| 南部县| 贵州省| 吐鲁番市| 新乡市|