基于Spring Boot + HttpClient框架的爬虫工具

2.

1. 导入数据库的包突然不生效了

cache删除重新导入一下,但依然不生效

解决办法:

去掉 import static com.sun.tools.doclint.Entity.sum;

String sql_passed = "select " + sum + "(pass_num) as passed from data_check where build_number=" + "'" + value_build_number + "'" + " order by id desc;";

不引入这个,直接 select sum(...) as 改为:

String sql_passed = "select sum(pass_num) as passed from data_check where build_number=" + "'" + value_build_number + "'" + " order by id desc;";

sum 是sql自带的函数 不用引用java的了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
非常感谢您的提问。可以为您提供一个基于 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`。 希望这个示例能对您有所帮助,如果您有任何问题或建议,欢迎与我随时交流。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方狱兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值