springboot引入forest(调用腾讯地图,逆向解析地址)

forest官网地址:Forest官方网站 - 轻量级HTTP框架 | Forest

1.先引入maven依赖

<dependency>
    <groupId>com.dtflys.forest</groupId>
    <artifactId>forest-spring-boot-starter</artifactId>
    <version>1.5.22</version>
</dependency>

2.启动类加扫描注解和路径:注意1.5版本以上依赖可以不加

 3.编写接口类:下面以远程调用腾讯地图举例

 4.正常调用即可

 5.关于调用远程接口返回值问题,采用可以GsonFormatPlus插件。

1.可以在idea的seetings中下载该插件。

2.下载离线jar包导入到项目中。

3.新建实体类,步骤如下。

 

讲方法返回结构粘贴进去。点击setting。

 之后一路OK即可,最终生成如下

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
非常感谢您的提问。可以为您提供一个基于 Spring Boot 和 Forest HTTP 框架调用京东云批量发送短信 OpenAPI 的示例代码。代码如下: ```java import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.util.*; import org.springframework.stereotype.Service; import com.dtflys.forest.backend.HttpBackend; import com.dtflys.forest.backend.httpclient.HttpclientBackend; import com.dtflys.forest.config.ForestConfiguration; import com.dtflys.forest.converter.json.ForestJsonConverter; import com.dtflys.forest.converter.xml.ForestXmlConverter; import com.dtflys.forest.exceptions.ForestRuntimeException; import com.dtflys.forest.http.ForestRequest; import com.dtflys.forest.http.ForestResponse; import com.dtflys.forest.interceptor.Interceptor; import com.dtflys.forest.retryer.BackOffRetryer; import com.dtflys.forest.utils.ForestDataType; import com.dtflys.forest.utils.ReflectUtils; @Service public class JDCloudSmsService { private final String appKey = "your_app_key"; private final String secret = "your_secret"; private final String smsApiHost = "sms.jcloud.com"; private final String smsApiPath = "/v1/sms/sendBatchSMS"; private final ForestConfiguration configuration; public JDCloudSmsService() { configuration = ForestConfiguration.configuration(); configuration.setCacheEnabled(false); configuration.setBackend(new HttpclientBackend()); configuration.setRetryer(new BackOffRetryer()); configuration.setJsonConverter(new ForestJsonConverter()); configuration.setXmlConverter(new ForestXmlConverter()); configuration.setVariableValue("appKey", appKey); } public void sendBatchSms(List<String> mobiles, String signName, String templateId, Map<String, String> params) throws NoSuchAlgorithmException, IOException { // 构建 Forest 请求对象 ForestRequest request = configuration.createRequest(); // 设置请求地址 request.url("https://" + smsApiHost + smsApiPath); // 设置请求头 Map<String, Object> headers = new HashMap<>(); headers.put("X-JCloud-App-Key", appKey); headers.put("X-JCloud-Request-Nonce", UUID.randomUUID().toString()); headers.put("X-JCloud-Request-Timestamp", String.valueOf(System.currentTimeMillis())); headers.put("Content-Type", "application/json;charset=UTF-8"); headers.put("Authorization", getAuthorizationHeaderValue(secret, appKey, headers")); request.headers(headers); // 设置请求参数 Map<String, Object> map = new HashMap<>(); map.put("mobiles", mobiles); map.put("signName", signName); map.put("templateId", templateId); map.put("templateParams", params); request.body(map, ForestDataType.JSON); // 发送请求 ForestResponse response = request.post(); // 处理响应 if (response.isError()) { throw new ForestRuntimeException("JDCloud SMS API error: " + response.getContent()); } else { System.out.println("JDCloud SMS API response: " + response.getContent()); } } private String getAuthorizationHeaderValue(String secret, String appKey, Map<String, Object> headers) throws NoSuchAlgorithmException { StringBuilder sb = new StringBuilder(); sb.append("JCloud ").append("appKey=").append(appKey).append(","); sb.append("signatureMethod=").append("HmacSHA256").append(","); sb.append("timestamp=").append(headers.get("X-JCloud-Request-Timestamp")).append(","); sb.append("nonce=").append(headers.get("X-JCloud-Request-Nonce")).append(","); String queryString = ReflectUtils.toQueryString(headers, false); sb.append(queryString); return sb.toString(); } } ``` 该示例代码中,我们使用了 Forest HTTP 框架来进行 HTTP 请求的构建和发送,并使用了 Spring Boot 框架来管理该服务。 具体实现步骤如下: 1. 创建 Forest 配置对象 `configuration`,设置 Forest 配置信息,包括 HTTP 请求后端实现、JSON/XML 转换器、重试机制等; 2. 根据京东云短信 OpenAPI 的要求,构建 HTTP 请求对象 `request`,并设置请求地址、请求头、请求参数等; 3. 发送 HTTP POST 请求,并获取响应对象 `response`; 4. 解析响应内容,根据业务逻辑进行处理。在该示例代码中,如果响应的状态码为错误状态,直接抛出 `ForestRuntimeException` 异常,否则打印响应内容。 注意:示例代码中的 `appKey` 和 `secret` 需要您自行替换为您在京东云账号中创建的短信应用的 `appKey` 和 `secret`。 希望这个示例能对您有所帮助,如果您有任何问题或建议,欢迎与我随时交流。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值