<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    Java 發送http請求上傳文件功能案例

    時間:2025-04-20 16:12:59 java語言 我要投稿
    • 相關推薦

    Java 發送http請求上傳文件功能案例

      如何使用Java做一個http請求上傳文件的功能呢?下面是由百分網小編為大家整理的Java 發送http請求上傳文件功能案例,喜歡的可以收藏一下!了解更多詳情資訊,請關注應屆畢業生考試網!

      具體代碼如下所示:

      package wxapi.WxHelper;

      import java.io.BufferedReader;

      import java.io.DataInputStream;

      import java.io.DataOutputStream;

      import java.io.File;

      import java.io.FileInputStream;

      import java.io.IOException;

      import java.io.InputStreamReader;

      import java.io.OutputStream;

      import java.net.HttpURLConnection;

      import java.net.URL;

      import java.net.URLConnection;

      import java.util.Date;

      import java.util.Map;

      import java.util.Map.Entry;

      public class HttpRequestUtil {

      /**

      * 發送get請求

      *

      * @param requestUrl

      *      請求url

      * @param requestHeader

      *      請求頭

      * @param responseEncoding

      *      響應編碼

      * @return 頁面響應html

      */

      public static String sendGet(String requestUrl, Map<String, String> requestHeader, String responseEncoding) {

      String result = "";

      BufferedReader reader = null;

      try {

      if (requestUrl == null || requestUrl.isEmpty()) {

      return result;

      }

      URL realUrl = new URL(requestUrl);

      URLConnection connection = realUrl.openConnection();

      connection.setRequestProperty("accept", "text/html, application/xhtml+xml, image/jxr, */*");

      connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0");

      if (requestHeader != null && requestHeader.size() > 0) {

      for (Entry<String, String> entry : requestHeader.entrySet()) {

      connection.setRequestProperty(entry.getKey(), entry.getValue());

      }

      }

      connection.connect();

      if (responseEncoding == null || responseEncoding.isEmpty()) {

      responseEncoding = "UTF-8";

      }

      reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), responseEncoding));

      String line;

      while ((line = reader.readLine()) != null) {

      result += line;

      }

      } catch (Exception e) {

      System.out.println("發送GET請求出現異常!");

      e.printStackTrace();

      } finally {

      try {

      if (reader != null) {

      reader.close();

      }

      } catch (Exception e) {

      e.printStackTrace();

      }

      }

      return result;

      }

      /**

      * 發送post請求

      *

      * @param requestUrl

      *      請求url

      * @param requestHeader

      *      請求頭

      * @param formTexts

      *      表單數據

      * @param files

      *      上傳文件

      * @param requestEncoding

      *      請求編碼

      * @param responseEncoding

      *      響應編碼

      * @return 頁面響應html

      */

      public static String sendPost(String requestUrl, Map<String, String> requestHeader, Map<String, String> formTexts, Map<String, String> files, String requestEncoding, String responseEncoding) {

      OutputStream out = null;

      BufferedReader reader = null;

      String result = "";

      try {

      if (requestUrl == null || requestUrl.isEmpty()) {

      return result;

      }

      URL realUrl = new URL(requestUrl);

      HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();

      connection.setRequestProperty("accept", "text/html, application/xhtml+xml, image/jxr, */*");

      connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0");

      if (requestHeader != null && requestHeader.size() > 0) {

      for (Entry<String, String> entry : requestHeader.entrySet()) {

      connection.setRequestProperty(entry.getKey(), entry.getValue());

      }

      }

      connection.setDoOutput(true);

      connection.setDoInput(true);

      connection.setRequestMethod("POST");

      if (requestEncoding == null || requestEncoding.isEmpty()) {

      requestEncoding = "UTF-8";

      }

      if (responseEncoding == null || responseEncoding.isEmpty()) {

      responseEncoding = "UTF-8";

      }

      if (requestHeader != null && requestHeader.size() > 0) {

      for (Entry<String, String> entry : requestHeader.entrySet()) {

      connection.setRequestProperty(entry.getKey(), entry.getValue());

      }

      }

      if (files == null || files.size() == 0) {

      connection.setRequestProperty("content-type", "application/x-www-form-urlencoded");

      out = new DataOutputStream(connection.getOutputStream());

      if (formTexts != null && formTexts.size() > 0) {

      String formData = "";

      for (Entry<String, String> entry : formTexts.entrySet()) {

      formData += entry.getKey() + "=" + entry.getValue() + "&";

      }

      formData = formData.substring(0, formData.length() - 1);

      out.write(formData.toString().getBytes(requestEncoding));

      }

      } else {

      String boundary = "-----------------------------" + String.valueOf(new Date().getTime());

      connection.setRequestProperty("content-type", "multipart/form-data; boundary=" + boundary);

      out = new DataOutputStream(connection.getOutputStream());

      if (formTexts != null && formTexts.size() > 0) {

      StringBuilder sbFormData = new StringBuilder();

      for (Entry<String, String> entry : formTexts.entrySet()) {

      sbFormData.append("--" + boundary + "\r\n");

      sbFormData.append("Content-Disposition: form-data; name=\"" + entry.getKey() + "\"\r\n\r\n");

      sbFormData.append(entry.getValue() + "\r\n");

      }

      out.write(sbFormData.toString().getBytes(requestEncoding));

      }

      for (Entry<String, String> entry : files.entrySet()) {

      String fileName = entry.getKey();

      String filePath = entry.getValue();

      if (fileName == null || fileName.isEmpty() || filePath == null || filePath.isEmpty()) {

      continue;

      }

      File file = new File(filePath);

      if (!file.exists()) {

      continue;

      }

      out.write(("--" + boundary + "\r\n").getBytes(requestEncoding));

      out.write(("Content-Disposition: form-data; name=\"" + fileName + "\"; filename=\"" + file.getName() + "\"\r\n").getBytes(requestEncoding));

      out.write(("Content-Type: application/x-msdownload\r\n\r\n").getBytes(requestEncoding));

      DataInputStream in = new DataInputStream(new FileInputStream(file));

      int bytes = 0;

      byte[] bufferOut = new byte[1024];

      while ((bytes = in.read(bufferOut)) != -1) {

      out.write(bufferOut, 0, bytes);

      }

      in.close();

      out.write(("\r\n").getBytes(requestEncoding));

      }

      out.write(("--" + boundary + "--").getBytes(requestEncoding));

      }

      out.flush();

      out.close();

      out = null;

      reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), responseEncoding));

      String line;

      while ((line = reader.readLine()) != null) {

      result += line;

      }

      } catch (Exception e) {

      System.out.println("發送POST請求出現異常!");

      e.printStackTrace();

      } finally {

      try {

      if (out != null) {

      out.close();

      }

      if (reader != null) {

      reader.close();

      }

      } catch (IOException ex) {

      ex.printStackTrace();

      }

      }

      return result;

      }

      }

    【Java 發送http請求上傳文件功能案例】相關文章:

    java如何利用java.net.URLConnection發送HTTP請求08-05

    JAVA如何獲取HTTP請求頭10-22

    關于java實現http請求工具類示例09-09

    php實現文件上傳及頭像預覽功能10-17

    java上傳文件到七牛云中09-23

    PHP實現文件上傳和多文件上傳07-31

    JavaWeb如何實現文件上傳下載功能08-23

    Html5如何實現文件異步上傳功能09-16

    php文件怎么上傳06-21

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人