[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를 참조하시면 도움이 될 것입니다.