| | |
| | | import org.apache.commons.httpclient.HttpStatus; |
| | | import org.apache.commons.httpclient.methods.PostMethod; |
| | | import org.apache.commons.httpclient.methods.StringRequestEntity; |
| | | import org.apache.http.HttpEntity; |
| | | import org.apache.http.HttpResponse; |
| | | import org.apache.http.client.methods.HttpPost; |
| | | import org.apache.http.entity.ContentType; |
| | | import org.apache.http.entity.mime.HttpMultipartMode; |
| | | import org.apache.http.entity.mime.MultipartEntityBuilder; |
| | | import org.apache.http.impl.client.HttpClientBuilder; |
| | | import org.apache.http.util.EntityUtils; |
| | | import org.dromara.common.oss.entity.SynchronousRequest; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.io.*; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.util.HashMap; |
| | | |
| | | public class HttpUtils { |
| | |
| | | } |
| | | return jsonResult; |
| | | } |
| | | |
| | | private static final String BOUNDARY = "----WebKitFormBoundary7MA4YWxkTrZu0gW"; |
| | | private static final String LINE_FEED = "\r\n"; |
| | | private static final String CHARSET = "UTF-8"; |
| | | |
| | | public static File convert(MultipartFile multipartFile) throws IOException { |
| | | File file = new File(multipartFile.getOriginalFilename()); |
| | | multipartFile.transferTo(file); |
| | | return file; |
| | | } |
| | | |
| | | public static void sendPostRequest(String url, String stringParam, File fileParam) throws Exception { |
| | | |
| | | URL obj = new URL(url); |
| | | HttpURLConnection con = (HttpURLConnection) obj.openConnection(); |
| | | |
| | | // 设置POST请求 |
| | | con.setRequestMethod("POST"); |
| | | con.setDoOutput(true); |
| | | con.setDoInput(true); |
| | | con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); |
| | | |
| | | // 构建请求体 |
| | | DataOutputStream wr = new DataOutputStream(con.getOutputStream()); |
| | | wr.writeBytes("--" + BOUNDARY + LINE_FEED); |
| | | wr.writeBytes("Content-Disposition: form-data; name=\"stringParam\"" + LINE_FEED); |
| | | wr.writeBytes(LINE_FEED); |
| | | wr.writeBytes(stringParam + LINE_FEED); |
| | | |
| | | wr.writeBytes("--" + BOUNDARY + LINE_FEED); |
| | | wr.writeBytes("Content-Disposition: form-data; name=\"fileParam\"; filename=\"" + fileParam.getName() + "\"" + LINE_FEED); |
| | | wr.writeBytes("Content-Type: " + HttpURLConnection.guessContentTypeFromName(fileParam.getName()) + LINE_FEED); |
| | | wr.writeBytes("Content-Transfer-Encoding: binary" + LINE_FEED); |
| | | wr.writeBytes(LINE_FEED); |
| | | |
| | | FileInputStream inputStream = new FileInputStream(fileParam); |
| | | byte[] buffer = new byte[4096]; |
| | | int bytesRead = -1; |
| | | while ((bytesRead = inputStream.read(buffer)) != -1) { |
| | | wr.write(buffer, 0, bytesRead); |
| | | } |
| | | wr.writeBytes(LINE_FEED); |
| | | wr.writeBytes("--" + BOUNDARY + "--" + LINE_FEED); |
| | | |
| | | wr.flush(); |
| | | wr.close(); |
| | | |
| | | // 发送请求并获取响应 |
| | | int responseCode = con.getResponseCode(); |
| | | BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); |
| | | String inputLine; |
| | | StringBuffer response = new StringBuffer(); |
| | | while ((inputLine = in.readLine()) != null) { |
| | | response.append(inputLine); |
| | | } |
| | | in.close(); |
| | | |
| | | // 打印响应结果 |
| | | System.out.println("Response Code : " + responseCode); |
| | | System.out.println("Response : " + response.toString()); |
| | | } |
| | | |
| | | /** |
| | | * 上传同步 |
| | | * @param url |
| | | * @param entity |
| | | * @return |
| | | * @throws IOException |
| | | */ |
| | | public static String sendPostRequest(String url, SynchronousRequest entity) throws IOException { |
| | | org.apache.http.client.HttpClient httpClient = HttpClientBuilder.create().build(); |
| | | HttpPost httpPost = new HttpPost(url); |
| | | |
| | | MultipartEntityBuilder builder = MultipartEntityBuilder.create(); |
| | | builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); |
| | | |
| | | // 添加MultipartFile参数 |
| | | builder.addBinaryBody("file", entity.getFile().getBytes(), ContentType.MULTIPART_FORM_DATA, entity.getFile().getOriginalFilename()); |
| | | |
| | | // 添加String参数 |
| | | builder.addTextBody("path", entity.getPath(), ContentType.TEXT_PLAIN); |
| | | builder.addTextBody("ossId", entity.getOssId(), ContentType.TEXT_PLAIN); |
| | | builder.addTextBody("createBy", entity.getCreateBy(), ContentType.TEXT_PLAIN); |
| | | builder.addTextBody("password", entity.getPassword(), ContentType.TEXT_PLAIN); |
| | | |
| | | HttpEntity multipart = builder.build(); |
| | | httpPost.setEntity(multipart); |
| | | |
| | | HttpResponse response = httpClient.execute(httpPost); |
| | | String responseBody = EntityUtils.toString(response.getEntity()); |
| | | System.out.println("Response: " + responseBody); |
| | | return responseBody; |
| | | } |
| | | |
| | | /** |
| | | * 删除同步 |
| | | * @param url |
| | | * @param parameter |
| | | * @throws Exception |
| | | */ |
| | | public static void sendDeleteRequest(String url, String parameter) throws Exception { |
| | | // 拼接URL和参数 |
| | | String deleteUrl = url + "/" + parameter; |
| | | |
| | | // 创建URL对象和HttpURLConnection对象 |
| | | URL obj = new URL(deleteUrl); |
| | | HttpURLConnection con = (HttpURLConnection) obj.openConnection(); |
| | | |
| | | // 设置请求方法为DELETE |
| | | con.setRequestMethod("DELETE"); |
| | | |
| | | // 发送请求并获取响应 |
| | | int responseCode = con.getResponseCode(); |
| | | BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); |
| | | String inputLine; |
| | | StringBuffer response = new StringBuffer(); |
| | | while ((inputLine = in.readLine()) != null) { |
| | | response.append(inputLine); |
| | | } |
| | | in.close(); |
| | | |
| | | // 打印响应结果 |
| | | System.out.println("Response Code : " + responseCode); |
| | | System.out.println("Response : " + response.toString()); |
| | | } |
| | | } |
| | | |