命令式
概述
命令式调用除了通过HTTP
客户端发送请求和处理响应之外,Solpic
还提供了两种便捷的Template
方法集合,用法上类似于Spring
中的RestTemplate
,它们分别是:
SolpicTemplate
:提供主流HTTP
方法调用的轻度封装OneWaySolpicTemplate
:单向调用的SolpicTemplate
,也就是只处理请求发送,忽略响应处理
TIP
非Template
方法集合的使用方式,可以参考发送请求小节。
SolpicTemplate
创建SolpicTemplate
:
java
SolpicTemplate solpicTemplate = Solpic.newSolpicTemplateBuilder()
.httpClient(Solpic.newHttpClientBuilder().type(HttpClientType.JDK_HTTPCLIENT).build())
.codec(Solpic.loadCodec("jackson"))
.build();
使用SolpicTemplate
:
java
// 返回HttpResponse
HttpResponse<String> response = solpicTemplate.get("https://httpbin.org/get", String.class);
String payload = response.getPayload();
// 返回响应有效载荷转换后的结果
String result = solpicTemplate.getForObject("https://httpbin.org/get", String.class);
SolpicTemplate
还提供了本地文件上传和远程文件下载的快捷调用方法:
java
// 上传
HttpResponse<Void> uploadResponse = solpicTemplate.upload("https://httpbin.org/put", "file",
Paths.get("/tmp/log.txt"));
// 下载
HttpResponse<Path> downloadResponse = solpicTemplate.download("https://httpbin.org/image/png",
Paths.get("/tmp/pig.png"));
Path path = downloadResponse.getPayload();
OneWaySolpicTemplate
创建OneWaySolpicTemplate
:
java
OneWaySolpicTemplate oneWayTemplate = Solpic.newOneWaySolpicTemplateBuilder()
.httpClient(Solpic.newHttpClientBuilder().type(HttpClientType.JDK_HTTPCLIENT).build())
.codec(Solpic.loadCodec("jackson"))
.build();
使用OneWaySolpicTemplate
:
java
oneWayTemplate.get("https://httpbin.org/get");
oneWayTemplate.post("https://httpbin.org/post", PayloadPublishers.X.ofString("foo"));