1、先看一下示例代码
- public class HttpClientTest {
- public static void main(String args[]) {
- //创建HttpClientBuilder
- HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
- //HttpClient
- CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
- HttpGet httpGet = new HttpGet("http://www.gxnu.edu.cn/default.html");
- System.out.println(httpGet.getRequestLine());
- try {
- //执行get请求
- HttpResponse httpResponse = closeableHttpClient.execute(httpGet);
- //获取响应消息实体
- HttpEntity entity = httpResponse.getEntity();
- //响应状态
- System.out.println("status:" + httpResponse.getStatusLine());
- //判断响应实体是否为空
- if (entity != null) {
- System.out.println("contentEncoding:" + entity.getContentEncoding());
- System.out.println("response content:" + EntityUtils.toString(entity));
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
public class HttpClientTest {
public static void main(String args[]) {
//创建HttpClientBuilder
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
//HttpClient
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
HttpGet httpGet = new HttpGet("http://www.gxnu.edu.cn/default.html");
System.out.println(httpGet.getRequestLine());
try {
//执行get请求
HttpResponse httpResponse = closeableHttpClient.execute(httpGet);
//获取响应消息实体
HttpEntity entity = httpResponse.getEntity();
//响应状态
System.out.println("status:" + httpResponse.getStatusLine());
//判断响应实体是否为空
if (entity != null) {
System.out.println("contentEncoding:" + entity.getContentEncoding());
System.out.println("response content:" + EntityUtils.toString(entity));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
t
- closeableHttpClient.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
//关闭流并释放资源
closeableHttpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2、HttpClientBuilder
HttpClientBuilder用于创建CloseableHttpClient实例。看了一下API文档,AbstractHttpClient、 AutoRetryHttpClient、 DefaultHttpClient等都被弃用了,使用HttpClientBuilder代替。
3、CloseableHttpClient
实现接口:Closeable, AutoCloseable, HttpClient;子类:AbstractHttpClient
4、HttpGet
非线程安全;HttpGet有三个构造方法:HttpGet()、HttpGet(String uri)、HttpGet(URI uri)
5、HttpResponse
服务器在接收和解释请求之后返回一个HTTP响应信息
public static void main(String args[]) {
//创建HttpClientBuilder
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
//HttpClient
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
HttpPost httpPost = new HttpPost("http://tutor.sturgeon.mopaas.com/tutor/search");
httpPost.setConfig(DEFAULT);
// 创建参数队列
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("searchText", "英语"));
UrlEncodedFormEntity entity;
try {
entity = new UrlEncodedFormEntity(formparams, "UTF-8");
httpPost.setEntity(entity);
HttpResponse httpResponse;
//post请求
httpResponse = closeableHttpClient.execute(httpPost);
//getEntity()
HttpEntity httpEntity = httpResponse.getEntity();
if (httpEntity != null) {
//打印响应内容
System.out.println("response:" + EntityUtils.toString(httpEntity, "UTF-8"));
}
//释放资源
closeableHttpClient.close();
} catch (Exception e) {
e.printStackTrace();
}
}
此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/70079.html