HttpClient简单使用

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();
  }

 

posted @ 2015-07-19 19:52  假装正经的屌丝  阅读(1615)  评论(0)    收藏  举报