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. 畅联新设备接入情况:新增威隆NB烟感

    双美接入,应该是电信AEP平台的. ---------------------------------------------------------------------------------- ...

  2. Django的简单使用

    Django 基础简介 基础简介 1. 软件框架 一个公司是由公司中的各部部门来组成的,每一个部门拥有特定的职能,部门与部门之间通过相互的配合来完成让公司运转起来. 一个软件框架是由其中各个软件模块组 ...

  3. jupyter notebook使用相对路径的方法

    在当前文件夹路径下开启jupyter notebook 这样就可以直接使用相对路径了,而不用管绝对路径这一令人心烦的问题 首先需要重新安装PowerShell 下载链接:https://cloud.1 ...

  4. Vue3笔记(二)了解组合式API的应用与方法

    一.组合式API(Composition API)的介绍 官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html 组 ...

  5. Kubernetes集群YAML文件详解

    Kubernetes集群YAML文件详解 概述 k8s 集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到YAML 格式文件中,我们把这种 ...

  6. Ansible执⾏速度优化

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 优化⼀: 开启SSH长连接 Ansible模式是使⽤SSH和远程主机进⾏通信, 所以Ansi ...

  7. Git基操记录

    小结 说多了都是泪,最近在整理Java的笔记,记笔记我比较喜欢使用markdown(当时使用Hexo的原因之一),毕竟作为刚入门槛一点点的程序小白,还没用上Idea(很多大佬都推荐这个),目前还在使用 ...

  8. 第2-4-3章 规则引擎Drools基础语法-业务规则管理系统-组件化-中台

    目录 4. Drools基础语法 4.1 规则文件构成 4.2 规则体语法结构 4.3 注释 4.4 Pattern模式匹配 4.5 比较操作符 4.5.1 语法 4.5.2 操作步骤 4.6 执行指 ...

  9. c3 linearization详解

    MRO MRO 全称方法解析顺序(Method Resolution Order),在多重继承和多继承存在的时候,寻找属性及方法的顺序. 深度优先(DFS)与广度优先(BFS) python2 所用的 ...

  10. Duplicate property mapping of xxx found in xx 嵌套异常,重复的属性在映射中发现。

    该异常的原意是因为在映射文件中出现了两个一样的属性名: <property name="相同的属性名出现了两次以上" > <property name=" ...