欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何在java中使用HttpURLConnection實現(xiàn)發(fā)送文件與字符串信息

這篇文章給大家介紹如何在java中使用HttpURLConnection實現(xiàn)發(fā)送文件與字符串信息,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

成都創(chuàng)新互聯(lián)公司專注于汾陽網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供汾陽營銷型網(wǎng)站建設,汾陽網(wǎng)站制作、汾陽網(wǎng)頁設計、汾陽網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務,打造汾陽網(wǎng)絡公司原創(chuàng)品牌,更為您提供汾陽網(wǎng)站排名全網(wǎng)營銷落地服務。

java HttpURLConnection 發(fā)送文件和字符串信息

以文件的形式傳參

/**
   * 通過拼接的方式構(gòu)造請求內(nèi)容,實現(xiàn)參數(shù)傳輸以及文件傳輸
   * 
   * @param actionUrl 訪問的服務器URL
   * @param params 普通參數(shù)
   * @param files 文件參數(shù)
   * @return
   * @throws IOException
   */
  public static void post(String actionUrl, Map<String, String> params, Map<String, File> files) throws IOException
  {

    String BOUNDARY = java.util.UUID.randomUUID().toString();
    String PREFIX = "--", LINEND = "\r\n";
    String MULTIPART_FROM_DATA = "multipart/form-data";
    String CHARSET = "UTF-8";

    URL uri = new URL(actionUrl);
    HttpURLConnection conn = (HttpURLConnection) uri.openConnection();
    conn.setReadTimeout(5 * 1000); // 緩存的最長時間
    conn.setDoInput(true);// 允許輸入
    conn.setDoOutput(true);// 允許輸出
    conn.setUseCaches(false); // 不允許使用緩存
    conn.setRequestMethod("POST");
    conn.setRequestProperty("connection", "keep-alive");
    conn.setRequestProperty("Charsert", "UTF-8");
    conn.setRequestProperty("Content-Type", MULTIPART_FROM_DATA + ";boundary=" + BOUNDARY);

    // 首先組拼文本類型的參數(shù)
    StringBuilder sb = new StringBuilder();
    for (Map.Entry<String, String> entry : params.entrySet())
    {
      sb.append(PREFIX);
      sb.append(BOUNDARY);
      sb.append(LINEND);
      sb.append("Content-Disposition: form-data; name=\"" + entry.getKey() + "\"" + LINEND);
      sb.append("Content-Type: text/plain; charset=" + CHARSET + LINEND);
      sb.append("Content-Transfer-Encoding: 8bit" + LINEND);
      sb.append(LINEND);
      sb.append(entry.getValue());
      sb.append(LINEND);
    }

    DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
    outStream.write(sb.toString().getBytes());
    InputStream in = null;
    // 發(fā)送文件數(shù)據(jù)
    if (files != null)
    {
      for (Map.Entry<String, File> file : files.entrySet())
      {
        StringBuilder sb1 = new StringBuilder();
        sb1.append(PREFIX);
        sb1.append(BOUNDARY);
        sb1.append(LINEND);
        // name是post中傳參的鍵 filename是文件的名稱
        sb1.append("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getKey() + "\"" + LINEND);
        sb1.append("Content-Type: application/octet-stream; charset=" + CHARSET + LINEND);
        sb1.append(LINEND);
        outStream.write(sb1.toString().getBytes());

        InputStream is = new FileInputStream(file.getValue());
        byte[] buffer = new byte[1024];
        int len = 0;
        while ((len = is.read(buffer)) != -1)
        {
          outStream.write(buffer, 0, len);
        }

        is.close();
        outStream.write(LINEND.getBytes());
      }

      // 請求結(jié)束標志
      byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINEND).getBytes();
      outStream.write(end_data);
      outStream.flush();
      // 得到響應碼
      int res = conn.getResponseCode();
      if (res == 200)
      {
        in = conn.getInputStream();
        int ch;
        StringBuilder sb2 = new StringBuilder();
        while ((ch = in.read()) != -1)
        {
          sb2.append((char) ch);
        }
      }
      outStream.close();
      conn.disconnect();
    }
    // return in.toString();
  }

以數(shù)據(jù)流的形式傳參

public static String postFile(String actionUrl, Map<String, String> params, Map<String, byte[]> files)
      throws Exception
  {
    StringBuilder sb2 = null;
    String BOUNDARY = java.util.UUID.randomUUID().toString();
    String PREFIX = "--", LINEND = "\r\n";
    String MULTIPART_FROM_DATA = "multipart/form-data";
    String CHARSET = "UTF-8";

    URL uri = new URL(actionUrl);
    HttpURLConnection conn = (HttpURLConnection) uri.openConnection();
    conn.setReadTimeout(6 * 1000); // 緩存的最長時間
    conn.setDoInput(true);// 允許輸入
    conn.setDoOutput(true);// 允許輸出
    conn.setUseCaches(false); // 不允許使用緩存
    conn.setRequestMethod("POST");
    conn.setRequestProperty("connection", "keep-alive");
    conn.setRequestProperty("Charsert", "UTF-8");
    conn.setRequestProperty("Content-Type", MULTIPART_FROM_DATA + ";boundary=" + BOUNDARY);

    // 首先組拼文本類型的參數(shù)
    StringBuilder sb = new StringBuilder();
    for (Map.Entry<String, String> entry : params.entrySet())
    {
      sb.append(PREFIX);
      sb.append(BOUNDARY);
      sb.append(LINEND);
      sb.append("Content-Disposition: form-data; name=\"" + entry.getKey() + "\"" + LINEND);
      sb.append("Content-Type: text/plain; charset=" + CHARSET + LINEND);
      sb.append("Content-Transfer-Encoding: 8bit" + LINEND);
      sb.append(LINEND);
      sb.append(entry.getValue());
      sb.append(LINEND);
    }

    DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
    outStream.write(sb.toString().getBytes());
    InputStream in = null;
    // 發(fā)送文件數(shù)據(jù)
    if (files != null)
    {
      for (Map.Entry<String, byte[]> file : files.entrySet())
      {
        StringBuilder sb1 = new StringBuilder();
        sb1.append(PREFIX);
        sb1.append(BOUNDARY);
        sb1.append(LINEND);
        sb1.append("Content-Disposition: form-data; name=\"pic\"; filename=\"" + file.getKey() + "\"" + LINEND);
        sb1.append("Content-Type: application/octet-stream; charset=" + CHARSET + LINEND);
        sb1.append(LINEND);
        outStream.write(sb1.toString().getBytes());

        // InputStream is = new FileInputStream(file.getValue());
        // byte[] buffer = new byte[1024];
        // int len = 0;
        // while ((len = is.read(buffer)) != -1)
        // {
        // outStream.write(buffer, 0, len);
        // }
        // is.close();
        outStream.write(file.getValue());

        outStream.write(LINEND.getBytes());
      }

      // 請求結(jié)束標志
      byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINEND).getBytes();
      outStream.write(end_data);
      outStream.flush();
      // 得到響應碼
      int res = conn.getResponseCode();
      if (res == 200)
      {
        in = conn.getInputStream();
        int ch;
        sb2 = new StringBuilder();
        while ((ch = in.read()) != -1)
        {
          sb2.append((char) ch);
        }
        System.out.println(sb2.toString());
      }
      outStream.close();
      conn.disconnect();
      // 解析服務器返回來的數(shù)據(jù)
      return ParseJson.getEditMadIconResult(sb2.toString());
    }
    else
    {
      return "Update icon Fail";
    }
    // return in.toString();
  }

關于如何在java中使用HttpURLConnection實現(xiàn)發(fā)送文件與字符串信息就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

文章題目:如何在java中使用HttpURLConnection實現(xiàn)發(fā)送文件與字符串信息
文章分享:http://www.aaarwkj.com/article32/isjisc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、商城網(wǎng)站網(wǎng)頁設計公司、做網(wǎng)站、建站公司、網(wǎng)站設計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設
久久精品人妻少妇一区二区 | 亚洲乱码中文字幕在线观看| 亚洲日本成人av在线观看| av在线观看亚洲天堂| 精品国产91高清在线观看| 97人妻人人澡人人添人人爽| 成人作爱视频免费播放| 亚洲欧美中文字幕乱码| 国产av毛片一区二区| 日本人妻免费在线观看| 九九九视频在线观看免费| 在线观看国产自拍精品| 免费亚洲一区二区三区| 国语对白精品视频在线| 中文字幕欧美日韩人妻| 欧美高清一区二区在线观看| 国产精品一区二区日韩新区| 97久久精品人妻一区二区三区| 999热这里只有精品视频| 国产成人精品免费视频大| 亚洲日本国产精品第一页| 91午夜福利国产在线观看| 日韩精品综合成人欧美| 麻豆视传媒官网免费观看| 麻豆蜜桃精品视频在线观看| 后入蜜桃臀美女在线观看| 91欧美精品在线视频| 亚洲国产女人精品久久久| 国产麻豆精品免费喷白浆视频网站| 日本亚洲一区二区在线| 日产精品一级二级三级爱| 成人黄色av免费在线观看| 日韩最新视频一区二区三| 天天操天天干夜夜射| 我的极品小姨在线观看| 亚欧成人永久免费视频| 久久综合婷婷亚洲五月| 日韩精品免费在线观看视频网站| 国产午夜草莓视频在线观看| 国内成人午夜激情视频| 少妇人妻偷人精品系列|