码迷,mamicode.com
首页 > Web开发 > 详细

HttpClient简单使用

时间:2015-07-19 21:24:37      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

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简单使用

标签:

原文地址:http://www.cnblogs.com/techIT/p/4659441.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!