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. 【深入浅出 Yarn 架构与实现】1-1 设计理念与基本架构

    一.Yarn 产生的背景 Hadoop2 之前是由 HDFS 和 MR 组成的,HDFS 负责存储,MR 负责计算. 一)MRv1 的问题 耦合度高:MR 中的 jobTracker 同时负责资源管理 ...

  2. created与mounted执行顺序(关于微任务与宏任务)

    1.ps:只要你只使用created或者mounted中的一个不就好了吗[dog].这样只要在第一个异步任务代码跳出前,嵌套第二个任务函数就好了 最后面的两个链接一个是微任务与宏任务的通俗例子,一个是 ...

  3. mybatis一对多根据条件查询的查条数

    一对多写了mapper映射之后 根据条件查条数 可以根据主表的唯一id进行分组 在拿到它的count select count(0) over(aa.id),,id,name,age from tab ...

  4. 思维分析逻辑 1 DAY

    数据分析原则:坚决不做提数机器. 数据分析工作模块 日报 了解业务现状 提升数据敏感性 数据波动解释 周报 了解数据的短期趋势 版本迭代分析 为结论型报告背书 月报 梳理业务的流程 为决策提供部分建议 ...

  5. 2022-11-04 Acwing每日一题

    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...

  6. GAMES101课程 作业6 源代码概览

    GAMES101课程 作业6 源代码概览 Written by PiscesAlpaca(双鱼座羊驼) 一.概述 本篇将从main函数为出发点,按照各cpp文件中函数的调用顺序和层级嵌套关系,简单分析 ...

  7. Go语言核心36讲21

    提到Go语言中的错误处理,我们其实已经在前面接触过几次了. 比如,我们声明过error类型的变量err,也调用过errors包中的New函数.今天,我会用这篇文章为你梳理Go语言错误处理的相关知识,同 ...

  8. (C++) 笔记 C++11 std::mutex std::condition_variable 的使用

    #include <atomic> #include <chrono> #include <condition_variable> #include <ios ...

  9. uniCloud云开发入门以及对传统开发方式的思考

    事情缘由 作为选修了移动互联网应用的一员,老师讲的什么JS基础,还有ES6和uniapp,当然是没怎么听,因为是之前大二的时候都大概看过. 但是快到期末,老师讲了云开发,并且布置了与此相关的大作业,自 ...

  10. linux系统编码修改

    1. 查看当前系统默认采用的字符集locale 2. 查看系统当前编码echo $LANG如果输出为:en_US.UTF-8     英文zh_CN.UTF-8     中文 3. 查看系统是否安装中 ...