1. 소개
HttpClient 는 HTTP 및 관련 프로토콜에 중점을 둔 저수준 Java 구성 요소의 도구 집합을 제공하는 Apache HttpComponents 프로젝트의 일부입니다. HttpClient의 가장 중요한 기능은 HTTP 메서드를 실행하는 것입니다.
이 짧은 사용방법(예제)에서는 HttpClient 요청에 매개 변수를 추가하는 방법에 대해 설명 합니다. UriBuilder 를 String 이름-값 쌍 및 NameValuePair 와 함께 사용하는 방법을 알아 봅니다 . 마찬가지로 UrlEncodedFormEntity를 사용하여 매개 변수를 전달하는 방법을 살펴 보겠습니다 .
2. UriBuilder를 사용하여 HttpClient 요청에 매개 변수 추가
UriBuilder 는 빌더 패턴을 통해 URI를 쉽게 생성하고 매개 변수를 추가하는 데 도움이됩니다. 우리는 할 수 있습니다 사용하여 매개 변수를 추가 문자열 이름 - 값 쌍을, 또는 사용 의 NameValuePair 그 목적의 클래스를 .
이 예에서 최종 URL은 다음과 같아야합니다.
https://example.com?param1=value1¶m2=value2
문자열 이름-값 쌍 을 사용하는 방법을 살펴 보겠습니다 .
public CloseableHttpResponse sendHttpRequest() {
HttpGet httpGet = new HttpGet("https://example.com");
URI uri = new URIBuilder(httpGet.getURI())
.addParameter("param1", "value1")
.addParameter("param2", "value2")
.build();
((HttpRequestBase) httpGet).setURI(uri);
CloseableHttpResponse response = client.execute(httpGet);
client.close();
}
또한 HttpClient 요청에 대한 NameValuePair List을 사용할 수 있습니다 .
public CloseableHttpResponse sendHttpRequest() {
List nameValuePairs = new ArrayList();
nameValuePairs.add(new BasicNameValuePair("param1", "value1"));
nameValuePairs.add(new BasicNameValuePair("param2", "value2"));
HttpGet httpGet = new HttpGet("https://example.com");
URI uri = new URIBuilder(httpGet.getURI())
.addParameters(nameValuePairs)
.build();
((HttpRequestBase) httpGet).setURI(uri);
CloseableHttpResponse response = client.execute(httpGet);
client.close();
}
마찬가지로 UriBuilder 를 사용하여 다른 HttpClient 요청 메서드에 매개 변수를 추가 할 수 있습니다.
3. UrlEncodedFormEntity를 사용하여 HttpClient 요청에 매개 변수 추가
또 다른 접근 방식은 UrlEncodedFormEntity 를 활용하는 것입니다 .
public CloseableHttpResponse sendHttpRequest() {
List nameValuePairs = new ArrayList();
nameValuePairs.add(new BasicNameValuePair("param1", "value1"));
nameValuePairs.add(new BasicNameValuePair("param2", "value2"));
HttpPost httpPost = new HttpPost("https://example.com");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, StandardCharsets.UTF_8));
CloseableHttpResponse response = client.execute(httpPost);
client.close();
}
것을 알 수 UrlEncodedFormEntity가 GET 요청에 사용할 수 없습니다 GET 요청이 엔티티를 포함 할 수있는 몸을 가지고 있지 않기 때문에.
4. 결론
이 예에서는 HttpClient 요청에 매개 변수를 추가하는 방법을 보여주었습니다. 또한 이러한 모든 예제 및 코드 스 니펫의 구현은 GitHub에서 사용할 수 있습니다 .
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/java-httpclient-parameters
'Java' 카테고리의 다른 글
자바 생성자 사용방법(예제) (0) | 2021.03.23 |
---|---|
특정 소나 위반을 제외하도록 프로젝트 구성 (0) | 2021.03.23 |
Java IndexOutOfBoundsException "소스가 대상에 맞지 않음" (0) | 2021.03.22 |
정수의 제곱근이 Java에서 정수인지 확인 (0) | 2021.03.22 |
RestTemplate을 사용하여 개체 List 가져 오기 및 게시 (0) | 2021.03.22 |