栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 发送http请求上传文件功能实例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 { 
   
  public static String sendGet(String requestUrl, Map 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, * 
  public static String sendPost(String requestUrl, Map requestHeader, Map formTexts, Map 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 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 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 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 entry : formTexts.entrySet()) { 
     sbFormData.append("--" + boundary + "rn"); 
     sbFormData.append("Content-Disposition: form-data; name="" + entry.getKey() + ""rnrn"); 
     sbFormData.append(entry.getValue() + "rn"); 
   } 
   out.write(sbFormData.toString().getBytes(requestEncoding)); 
 } 
 for (Entry 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 + "rn").getBytes(requestEncoding)); 
   out.write(("Content-Disposition: form-data; name="" + fileName + ""; filename="" + file.getName() + ""rn").getBytes(requestEncoding)); 
   out.write(("Content-Type: application/x-msdownloadrnrn").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(("rn").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请求上传文件功能实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/145760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号