2019年/10月/24日
首页回退
和httpclient玩耍
本文是对各种httpclient的玩耍总结,不同的client表现出来的是不同的使用风格,我们在使用时需要注意对client对象生命周期和线程安全性的关注
文中包含部分使用代码和对于库源码的部分提取。推荐一个测试http的站点:https://httpbin.org/headers
JDK自带
注意,HttpURLConnection是默认KeepAlive的,对一个目标地址默认5个复用连接
具体细节看官网
Jodd
没有连接池,直接在socket上解析
但是如果你需要使用连接复用,使用下面这种方式
Apache
安全性,可单例
@Contract(threading = ThreadingBehavior.SAFE)
public abstract class CloseableHttpClient implements HttpClient, Closeable
Apache fluent
默认的连接池
final static PoolingHttpClientConnectionManager CONNMGR;
final static HttpClient CLIENT;
Unirest
这个库是对apache的封装
OkHttp
核心对象OkHttpClient线程安全
AsynchttpClient
Dsl类创建出来的DefaultAsyncHttpClient是线程安全的
ApacheHttpAsyncClient
Spring Http
RestTemplate是线程安全的
Google http
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
<version>1.23.0</version>
</dependency>
参考