[java] HttpClient를 사용하여 POST 요청 시에 Form 데이터를 보내는 방법은?
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost("http://example.com/api/endpoint");
// Form 데이터 설정
List<NameValuePair> formParams = new ArrayList<>();
formParams.add(new BasicNameValuePair("param1", "value1"));
formParams.add(new BasicNameValuePair("param2", "value2"));
try {
// Form 데이터를 인코딩하여 요청에 추가
httpPost.setEntity(new UrlEncodedFormEntity(formParams, "UTF-8"));
// POST 요청 실행
HttpResponse response = httpClient.execute(httpPost);
// 응답 결과 가져오기
String responseBody = EntityUtils.toString(response.getEntity());
System.out.println("Response: " + responseBody);
} catch (IOException e) {
e.printStackTrace();
}
}
}
위 코드에서는 Apache HttpClient를 사용하여 Java에서 POST 요청을 보내는 예제입니다. HttpPost
객체를 생성하고 요청 URL을 설정한 후, List<NameValuePair>
을 사용하여 Form 데이터를 설정합니다. UrlEncodedFormEntity
를 이용하여 Form 데이터를 인코딩하여 요청에 추가하고, HttpClient
를 통해 POST 요청을 실행합니다. 마지막으로, 응답 결과를 가져와 출력합니다.
더 자세한 내용은 Apache HttpClient Documentation를 참조하시면 도움이 될 것입니다.