Apache HttpClient 4.3 개발 가이드


저자:chszs,전재 설명 이 필요 합 니 다.블 로그 홈 페이지:http://blog.csdn.net/chszs
개술
Apache HttpClient 4 시 리 즈 는 발 표 된 지 오래 되 었 지만 HttpClient 3.x 버 전과 전혀 호 환 되 지 않 아 업계 에서 이 라 이브 러 리 를 사용 하 는 회사 가 적 고 인터넷 에서 도 관련 문서 자 료 를 공유 하지 않 습 니 다.
본 고 는 개발 자가 Apache HttpClient 4.3.x 라 이브 러 리 를 빠르게 시작 할 수 있 도록 간단 한 Apache HttpClient 4.3 개발 안내 서 를 작성 하 는 데 목적 을 둔다.
주의해 야 할 것 은 이 문서 의 코드 가 HttpClient 4.3 버 전보 다 낮은 곳 에서 실 행 될 수 없다 는 것 입 니 다.
2.개발 매 뉴 얼 1.HTTP 클 라 이언 트 만 들 기
CloseableHttpClient client = HttpClientBuilder.create().build();

2.기본 GET 요청 발송
instance.execute(new HttpGet(“http://www.baidu.com”));

3.HTTP 응답 상태 코드 가 져 오기
String url = “http://www.baidu.com”;
CloseableHttpResponse response = instance.execute(new HttpGet(url));
assertThat(response.getStatusLine().getStatusCode(), equalTo(200));

4.응답 을 가 져 오 는 미디어 형식
String url = “http://www.baidu.com”;
CloseableHttpResponse response = instance.execute(new HttpGet(url));
String contentMimeType = ContentType.getOrDefault(response.getEntity()).getMimeType();
assertThat(contentMimeType, equalTo(ContentType.TEXT_HTML.getMimeType()));

5.응답 하 는 BODY 부분 가 져 오기
String url = “http://www.baidu.com”;
CloseableHttpResponse response = instance.execute(new HttpGet(url));
String bodyAsString = EntityUtils.toString(response.getEntity());
assertThat(bodyAsString, notNullValue());

6.설정 요청 시간 초과 설정
@Test(expected=SocketTimeoutException.class)
public void givenLowTimeout_whenExecutingRequestWithTimeout_thenException() throws ClientProtocolException, IOException{
    RequestConfig requestConfig = RequestConfig.custom()
	.setConnectionRequestTimeout(50).setConnectTimeout(50)
	.setSocketTimeout(50).build();
    HttpGet request = new HttpGet(SAMPLE_URL);
    request.setConfig(requestConfig);
    instance.execute(request);
}

7、POST 요청 발송
instance.execute(new HttpPost(SAMPLE_URL));

8.HTTP 설정 변경 요청
CloseableHttpClient instance = HttpClientBuilder.create().disableRedirectHandling().build();
CloseableHttpResponse response = instance.execute(new HttpGet(SAMPLE_URL));
assertThat(reponse.getStatusLine().getStatusCode(), equalTo(301));

9.요청 한 HEADER 부분 설정
HttpGet request = new HttpGet(SAMPLE_URL);
request.addHeader(HttpHeaders.ACCEPT, “application/xml”);
response = instance.execute(request);

10.응답 을 가 져 오 는 HEADER 부분
CloseableHttpResponse response = instance.execute(new HttpGet(SAMPLE_URL));
Header[] headers = response.getHeaders(HttpHeaders.CONTENT_TYPE);
assertThat(headers, not(emptyArray()));

11.자원 을 닫 거나 방출 합 니 다.
response = instance.execute(new HttpGet(SAMPLE_URL));
try{
  HttpEntity entity = response.getEntity();
  if(entity!=null){
InputStream instream = entity.getContent();
instream.close();
  }
} finally{
  response.close();
}

상기 내용 은 HttpClient 4.3 의 모든 흔 한 수 요 를 포함 하여 개발 자 에 게 참고 하도록 제공 합 니 다.

좋은 웹페이지 즐겨찾기