转自:
http://www.java265.com/JavaCourse/202205/3307.html
HttpClient:
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议
HttpClient 主要功能:
(1)实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
(2)支持自动转向
(3)支持 HTTPS 协议
(4)支持代理服务器
下文笔者讲述第一个HttpClient程序的开发示例分享,如下所示:
实现思路:
1.创建一个HttpClient
2.定义一个httpRequest
3.HttpClient.execute(request)
4.获取httpClient运行后的结果
例:
package com.java265.other.httpClient;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.core5.http.HttpEntity;
public class HttpClient01 {
/*
* java265.com 第一个HttpClient示例
*/
public static void main(String[] args) throws Exception {
try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet("http://www.java265.com");
InputStream in = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try (CloseableHttpResponse response1 = httpclient.execute(httpGet)) {
System.out.println(response1.getCode() + " " + response1.getReasonPhrase());
HttpEntity entity1 = response1.getEntity();
in = entity1.getContent();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = in.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
System.out.println("output:" + bos.toString());
}catch(Exception e) {
System.out.println("message:" + e.getMessage());
}finally {
if(null != in) {
in.close();
}
if(null != bos) {
bos.close();
}
}
}
}
}