JAVA
[JAVA] POST multipart/form-data 요청하기
clichy12
2022. 7. 9. 12:54
1. pom.xml - dependency 추가
Maven Repository: Search/Browse/Explore
Simple API to run JMeter performance tests in an VCS and programmers friendly way. Last Release on Oct 28, 2021
mvnrepository.com
2. 라이브러리를 이용하여 post (multipart/form-data) 요청
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class Main {
public static void main(String[] args) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("URL");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("name", "sejin");
builder.addTextBody("key", "value");
File file = new File("C:\\Users\\tpwls\\Downloads\\test.png");
builder.addBinaryBody("image", new FileInputStream(file), ContentType.APPLICATION_OCTET_STREAM, file.getName());
HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
CloseableHttpResponse response = httpClient.execute(uploadFile);
HttpEntity responseEntity = response.getEntity();
InputStream is = responseEntity.getContent();
BufferedReader r = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = r.readLine()) != null) {
sb.append(line);
}
System.out.println(sb.toString());
}
}