HttpURLConnection 发起post请求,使用form-data 方式,并带着图片文件信息和其他参数进行传递
public static String sendPostCdn(String path,String type,String remark){
String requestURL = "https://www.接口地址.com/api/img/upload"; // 上传接口 URL
File file = new File(path); // 图片文件路径
try {
URL url = new URL(requestURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);
try (OutputStream outputStream = connection.getOutputStream();
DataOutputStream writer = new DataOutputStream(outputStream)) {
// 发送文件数据
writer.writeBytes("--" + BOUNDARY + LINE_FEED);
writer.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getName() + "\"" + LINE_FEED);
writer.writeBytes("Content-Type: image/jpeg" + LINE_FEED); // 根据你的文件类型修改
writer.writeBytes(LINE_FEED);
try (FileInputStream fileInputStream = new FileInputStream(file)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
writer.write(buffer, 0, bytesRead);
}
}
writer.writeBytes(LINE_FEED);
writer.writeBytes("--" + BOUNDARY + "--" + LINE_FEED);
// 发送其他表单参数(可选)
writer.writeBytes("--" + BOUNDARY + LINE_FEED);
writer.writeBytes("Content-Disposition: form-data; name=\"type\"" + LINE_FEED);
writer.writeBytes(LINE_FEED);
writer.writeBytes(type + LINE_FEED);
writer.writeBytes("--" + BOUNDARY + LINE_FEED);
writer.writeBytes("Content-Disposition: form-data; name=\"remarks\"" + LINE_FEED);
writer.writeBytes(LINE_FEED);
writer.writeBytes(remark + LINE_FEED);
writer.writeBytes("--" + BOUNDARY + "--" + LINE_FEED);
writer.flush();
}
// 处理响应
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
// 可以读取响应内容
try (java.io.InputStream is = connection.getInputStream()) {
java.util.Scanner scanner = new java.util.Scanner(is).useDelimiter("\\A");
String response = scanner.hasNext() ? scanner.next() : "";
System.out.println("Response Body: " + response);
JSONObject parse = JSONObject.parse(response);
System.out.println(parse);
if(!parse.getString("code").equals("200")){
return "";
}
String data = parse.getString("data");
JSONObject parse1 = JSONObject.parse(data);
file.delete();
return parse1.getString("path");
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
使用方法
String filePath = "H:\\20240826141538.png"; // 文件路径
String result = sendPostCdn(filePath);
1万+

被折叠的 条评论
为什么被折叠?



