您的位置:首页 > 理论基础 > 计算机网络

Java HttpClient使用

2015-07-15 23:08 489 查看
特性

基于标准、纯净的java语言。实现了Http1.0和Http1.1

以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。

支持HTTPS协议。

通过Http代理建立透明的连接。

利用CONNECT方法通过Http代理建立隧道的https连接。

Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos认证方案。

插件式的自定义认证方案。

便携可靠的套接字工厂使它更容易的使用第三方解决方案。

连接管理器支持多线程应用。支持设置最大连接数,同时支持设置每个主机的最大连接数,发现并关闭过期的连接。

自动处理Set-Cookie中的Cookie。

插件式的自定义Cookie策略。

Request的输出流可以避免流中内容直接缓冲到socket服务器。

Response的输入流可以有效的从socket服务器直接读取相应内容。

在http1.0和http1.1中利用KeepAlive保持持久连接。

直接获取服务器发送的response code和 headers。

设置连接超时的能力。

package com.xyj.webshopping.web;

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

/**
* Created by q on 2015/7/15.
*/
public class HttpClientTest {

/**
* 发送get请求
*/
public static void get(){
String url = "http://www.baidu.com";
CloseableHttpClient httpClient = HttpClients.createDefault();
// 创建httpGet
HttpGet httpGet = new HttpGet(url);
try {
// 执行http get请求
CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
// 获取响应实体
HttpEntity httpEntity = httpResponse.getEntity();
System.out.println(EntityUtils.toString(httpEntity));
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
// 关闭链接
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public static void main(String args[]){
get();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: