1. JDK提供了 网络编程的 基础类,Socket
Socket socket = new Socket();
socket.connect(new InetSocketAddress(8081));
2. JDK 提供的 发送 http 请求的 工具类: HttpURLConnection
URL url = new URL("http://localhost:8081/hello/world");
URLConnection urlConnection = url.openConnection();
urlConnection.connect();
// 其实,以上设置还没有进行 网络连接
// 当调用 getResponseCode() 方法 时,才会发起网络请求
urlConnection.getResponseCode();
3.Apache 的 HttpClient
引入 依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.15</version>
</dependency>
4. Square 的 OkHttpClient
引入依赖
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.3</version>
</dependency>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>2.8.0</version>
</dependency>
5. 综合体
5.1 工厂类 接口 ClientHttpRequestFactory
5.2 工厂类 抽象层 AbstractClientHttpRequestFactoryWrapper
5.3 工厂类 实现层
BufferingClientHttpRequestFactory
InterceptingClientHttpRequestFactory