[java] HttpClient를 사용하여 JSON 데이터를 송수신하는 방법은?
HttpClient
는 Java에서 HTTP 요청을 보내고 응답을 받는 데 사용되는 클래스입니다. JSON 데이터를 송수신하려면 HttpClient를 설정하고 요청을 만들어야 합니다.
먼저, HttpClient를 설정하는 방법은 다음과 같습니다.
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
public class HttpClientExample {
public static void main(String[] args) {
HttpClient httpClient = HttpClientBuilder.create().build();
}
}
HttpClient를 설정한 후, JSON 데이터를 송수신하려면 다음과 같이 하면 됩니다.
public class HttpClientExample {
public static void main(String[] args) {
HttpClient httpClient = HttpClientBuilder.create().build();
try {
HttpPost request = new HttpPost("http://example.com/api/endpoint");
// JSON 데이터 생성
JSONObject json = new JSONObject();
json.put("key1", "value1");
json.put("key2", "value2");
// JSON 데이터를 StringEntity로 변환하여 요청에 설정
StringEntity params = new StringEntity(json.toString());
request.addHeader("content-type", "application/json");
request.setEntity(params);
// 요청을 보내고 응답을 받음
HttpResponse response = httpClient.execute(request);
// 응답 데이터 추출
String responseBody = EntityUtils.toString(response.getEntity());
// 응답 데이터 출력
System.out.println(responseBody);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
// HttpClient 사용이 끝나면 연결을 종료
httpClient.getConnectionManager().shutdown();
}
}
}
위의 예제에서는 HttpClient를 사용하여 POST 요청을 보내고, JSON 데이터를 StringEntity
로 변환하여 요청에 설정합니다. 그리고 요청을 보내고 응답을 받은 후, 응답 데이터를 추출하여 출력합니다.
참고로, HttpClient는 Apache HttpComponents를 사용하는 라이브러리입니다.