1.定时任务

1.在类上添加注解

@Component
@Configuration
@EnableScheduling

2.在类中方法上添加注解

@Scheduled(cron = "0 */2 * * * ?") //每两秒执行一次,通过cron表达式控制频率

2.LocalDateTime

LocalDateTime endTime = LocalDateTime.now();//获取当前时间   2022-11-28T10:42:48.538
LocalDateTime startTime = endTime.minusDays(3); //当前时间往前推3天
endTime.plusDays(1);//当前时间往后推一天 String end = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(endTime); //将日期格式化为指定格式

3.Http调用其他接口

1.导入相关依赖

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</dependency>

2.工具类

点击查看代码
package com.hyl.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder; import java.util.Map; @Slf4j
public class HttpUtil { private static int HTTP_DEFAULT_TIMEOUT = 5000; public static final String SUCCESS = "success"; private static URL url;
private static HttpURLConnection con; /**
* post调用,传输map
*
* @param path
* @param params
* @return
* @throws IOException
*/
public static String send_post_request(String path, Map<String, String> params) throws IOException {
return send_post_request(path, params, "UTF-8", HTTP_DEFAULT_TIMEOUT);
} /**
* post调用
*
* @param path
* @param params
* @param encoding
* @return
* @throws IOException
*/
public static String send_post_request(String path, Map<String, String> params, String encoding, int timeout)
throws IOException {
if (StringUtils.isAnyBlank(path, encoding)) {
log.info("path或encoding为空,path:{}, encoding: {}", path, encoding);
return null;
}
InputStream inputStream = null;
OutputStream outStream = null;
HttpURLConnection conn = null;
try {
StringBuilder data = new StringBuilder();
if (params != null) {
for (Map.Entry<String, String> entry : params.entrySet()) {
if(StringUtils.isBlank(entry.getKey()) || null == entry.getValue()) {
continue;
}
data.append(entry.getKey()).append("=");
data.append(URLEncoder.encode(entry.getValue(), encoding));
data.append("&");
}
}
if (data.length() > 0) {
data.deleteCharAt(data.length() - 1);
}
log.info("====data:{}====", data.toString());
byte[] entity = data.toString().getBytes();// 生成实体数据
conn = (HttpURLConnection) new URL(path).openConnection();
conn.setConnectTimeout(timeout);// 设置超时
conn.setRequestMethod("POST");
// 允许对外输出数据
conn.setDoOutput(true);
// 设定传送的内容类型是可序列化的java对象
// (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException)
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(entity.length));
conn.setRequestProperty("AppKey", "3");
conn.setRequestProperty("Connection", "Keep-Alive");
outStream = conn.getOutputStream();
outStream.write(entity);
log.info("responseCode: {}", conn.getResponseCode());
if (conn.getResponseCode() == 200) {
inputStream = conn.getInputStream();
byte[] dateStream = readStream(inputStream);
return new String(dateStream);
}
} catch (Exception e) {
e.printStackTrace();
log.info("http调用发生异常,错误信息:{}", e.getMessage());
} finally {
if (outStream != null) {
outStream.close();
}
if (conn != null) {
conn.disconnect();
}
}
return null;
}
/**
* 读取流
*
* @param inStream
* @return
* @throws Exception
*/
public static byte[] readStream(InputStream inStream) throws Exception {
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[2048];
int len = -1;
while ((len = inStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
}
outSteam.close();
inStream.close();
return outSteam.toByteArray();
} }

3.调用方法 发送请求

String url = "http://localhost:8088/emp-admin";
HashMap<Stirng,Stirng) map = new HashMap<>(){{
put("id",1);
put("name","张三")
}};
String result = HttpUtil.send_post_request(url, map);//若那边接口是Json格式,调用另一个方法,传入JsonObject()类型的参数即可

定时任务,LocalDateTime,在代码中调用其他项目的接口url的更多相关文章

  1. Android 在C代码中调用logcat

    本文给<Android java传递int类型数组给C>中添加C代码中调用logcat的功能 Android.mk文件增加以下内容 LOCAL_LDLIBS += -llog C代码中增加 ...

  2. Dynamics AX 2012 R2 从代码中调用SSRS Report

    平时,我们制作SSRS Report的方法主要有两种:使用Query或RDP.如果需要为报表传递参数,就要在代码中为报表参数赋值,然后在代码中调用报表.下面我总结下这两种报表在代码中传参和调用的方式: ...

  3. 在C代码中调用C++接口

    一 在C源文件中调用C++封装的接口 例如: 要想在A.c文件中,调用生命在B.h,实现在B.cpp中的接口bool getMAC(char *mac_addr); 其实现方法 B.cpp 如下: / ...

  4. 在代码中调用 mvc 4 api

    mvc 4 api 的调用有很多种,最常见也最简单的一种是 用 ajax 的方式在前端界面中调用, 如果是在后台代码中调用 ,是要复杂一些,以下是 以 post 的方式调用 api 的封装好的方法: ...

  5. 该对象尚未初始化。请确保在所有其他初始化代码后面的应用程序启动代码中调用 HttpConfiguration.EnsureInitialized()。

    WebAPI使用属性路由,配置config.MapHttpAttributeRoutes();后出现错误: System.InvalidOperationException: 该对象尚未初始化.请确保 ...

  6. 在php代码中调用帝国cms头部变量temp.header的方法

    在php代码中调用帝国cms头部变量temp.header的方法 代码如下: <?php require("../e/class/connect.php"); if(!def ...

  7. 如何在java代码中调用一个web项目jsp或者servlet

    有时候需要调用一个web项目的jsp或者servlet,但是执行内部的代码,并不是打开jsp,例如需要在一段java代码中清除一个web项目中的缓存,那么可以把清除缓存的代码放在该web项目的一个se ...

  8. C# 代码中调用 Javascript 代码段以提高应用程序的配置灵活性(使用 Javascript .NET 与 Jint)

    一般来说,我们需要在开发应用软件的配置文件中,添加一些参数,用于后续用户根据实际情况,自行调整. 配置参数,可以放在配置文件中.环境变量中.或数据库表中(如果使用了数据库的话).通常,配置数据,以 k ...

  9. 在汇编代码中调用C函数

    对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数 ...

  10. c代码中调用c++,c++代码中调用c代码

    注意这里的c调用c++或者c++调用c的意思是.c文件中调用.cpp文件中的代码,或者相反 集成开发环境如vc++6.0或者vs都是通过文件后缀来区别当前要编译的是C代码还是C++代码,然后采用相应的 ...

随机推荐

  1. 以开发之名 | bilibili会员购让IP在眼前动起来

    随着ACG文化(二次元文化)影响力的不断提升,哔哩哔哩平台上衍生品消费群体不断扩大,手办行业迅速崛起.2017年,B站推出ACG衍生品消费品牌bilibili会员购,涵盖二次元手办销售等多项业务,拓展 ...

  2. 树上启发式合并(dsu on tree)

    树上启发式合并属于暴力的优化,复杂度O(nlogn) 主要解决的问题特点在于: 1.对于树上的某些信息进行查询 2.一般问题的解决不包含对树的修改,所有答案可以离线解决 算法思路:这类问题的特点在于父 ...

  3. jmeter——JSON提取器(从上一个请求的响应结果提取参数传给下一个请求)

    记录一个参数提取过程,可供后续参考. 1. 查看响应报文的结构 将上一个请求的响应报文复制到Notepad++编辑器 JSON Viewer是Notepad++的JSON插件, Notepad++的P ...

  4. 记录redis集群连接超时问题及解决方案

    下午同事反馈,某业务场景性能测试过程中,出现异常,提供日志报: Redis command timed out 1. 先看下日志 org.springframework.dao.QueryTimeou ...

  5. DNS 解析 prefeath

    本文将详细介绍DNS预解析prefetch的主要内容 概述 DNS(Domain Name System, 域名系统),是域名和IP地址相互映射的一个分布式数据库.DNS 查询就是将域名转换成 IP ...

  6. C#和Open eVision Studio图像库联合编程-读取图像

    OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Image Files (*.t ...

  7. RabbitMq发布确认

    RabbitMq发布确认 发布确认原理 生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消息都将会被指派一个唯一的 ID(从 1 开始),一旦消息被 ...

  8. OSI传输层TCP与UDP协议、应用层简介、socket模块介绍及代码优化、半连接池的概念

    目录 传输层之TCP与UDP协议 应用层 socket模块 socket基本使用 代码优化 半连接池的概念 传输层之TCP与UDP协议 TCP与UDP都是用来规定通信方式的 通信的时候可以随心所欲的聊 ...

  9. CheckBox 选中取值以及回填

    html: <td align="left" style="word-wrap:break-word;word-break:break-all;" col ...

  10. 【大数据面试】【框架】Hive:架构、计算引擎、比较、内外部表、by、函数、优化、数据倾斜、动静态分区

    一.组成 1.架构 源数据原本是存在dubby数据库,存在MySQL可以支持多个客户端 客户端.数据存储(HDFS).MR计算引擎 2.计算引擎的选择 MR引擎:基于磁盘,计算时间长,但一定能算出结果 ...