日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 转发上传文件_Java 发送http请求上传文件功能实例

發布時間:2025/4/5 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 转发上传文件_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 requestHeader, String responseEncoding) {

String result = "";

BufferedReader reader = null;

try {

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

return ruDkawiLesult;

}

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 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 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()www.cppcns.com == 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));

}

} elseuDkawiL {

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編程客棧FormData.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 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 發送http請求上傳文件功能實例

本文地址: http://www.cppcns.com/ruanjian/java/193112.html

總結

以上是生活随笔為你收集整理的java 转发上传文件_Java 发送http请求上传文件功能实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。