java后台调用http请求
1:代码 @Value("${sms.username}") 可以将sms.properties配置文件中的值注入到username
//这种方式是将sms.properties里的值注入到属性中
@Value("${sms.username}")
private String username; @Value("${sms.password}")
private String password; @Value("${sms.apiKey}")
private String apiKey; @Value("${sms.url}")
private String url; @Override
public void sendVerifyCode(String phoneNumber) { // 首先的到session中VerifyCodeVo
VerifyCodeVO vc = UserContext.getVerifyCode();
if (vc == null // 表示没有发过验证码 如果已经发送了要判断两次发送之间的时间间隔
|| (vc != null && DateUtil.getSecondsBetweenDates(vc.getSendTime(),new Date())
>= BidConst.SEND_VERIFYCODE_INTERVAL)) {
// 生成一个验证码
String code = UUID.randomUUID().toString().substring(0, 4);
try {
// 创建一个URL对象
URL targetUrl = new URL(this.url);
// 从URL对象中获得一个连接对象
HttpURLConnection conn = (HttpURLConnection) targetUrl.openConnection();
// 设置请求方式 注意这里的POST或者GET必须大写
conn.setRequestMethod("POST");
// 设置POST请求是有请求体的
conn.setDoOutput(true);
// 拼接发送的短信内容
StringBuilder params = new StringBuilder(100)
.append("username=").append(username)
.append("&password=").append(password)
.append("&apikey=").append(apiKey).append("&mobile=")
.append(phoneNumber).append("&content=")
.append("您的验证码是:").append(code).append(",有效时间是:")
.append(BidConst.VERIFYCODE_VALID_TIME).append("秒!");
// 写入参数
conn.getOutputStream().write(params.toString().getBytes());
// 读入响应
String response = StreamUtils.copyToString(
conn.getInputStream(), Charset.forName("UTF-8"));
// 发送成功 以success开头
if (response.startsWith("success")) {
// 构建一个vo对象 将vo放入session中
vc = new VerifyCodeVO(phoneNumber, code, new Date());
UserContext.putVerifyCode(vc);
}else{
throw new RuntimeException();
}
// 构建一个vo对象 将vo放入session中
// vc = new VerifyCodeVO(phoneNumber, code, new Date());
// UserContext.putVerifyCode(vc);
System.out.println("手机号" +phoneNumber +"验证码:" + code );
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("发送短信失败");
}
} else {
throw new RuntimeException("发送过于频繁");
}
}
2:sms.properties配置文件
sms.username=admin
sms.password=admin
sms.url=http://172.16.71.27:8082/send.do
sms.apiKey=admin
3:调用的其它项目中Controller层中的 send.do 方法实现
@RequestMapping("/send")
@ResponseBody
public String send(String username, String password, String apikey, String mobile, String content) {
System.out.println("发送短信给手机:" + mobile + ",发送短信内容为:" + content);
return "success";
}
java后台调用http请求的更多相关文章
- java后台调用HttpURLConnection类模拟浏览器请求(一般用于接口调用)
项目开发中难免遇到外部接口的调用,小生今天初次接触该类,跟着API方法走了一遍,如有不对的地方,还请哆哆指正,拜谢! 1 package com.cplatform.movie.back.test; ...
- Java后台调用gcc编译C语言代码
想做一个能够在线编译代码运行的平台,Java和SQL已经支持了,因为是用Java写的后台,所以Java和SQL挺容易就实现了,做到支持C的时候就卡住了,网上搜了一下这种帖子好像很少. 我采取的办法是就 ...
- java后台调用url无协议
url格式不正确,可能有"www.baidu.com" "这个不能有 // 下载pdf public void downpdf(String URL, String ...
- md5签名加密(用于java 后台调用短信平台接口实现发短信)
MD5Util 方法 package com.funcanteen.business.action.pay.util; import java.security.MessageDigest; publ ...
- java后台调用文件上传接口
借鉴:https://blog.csdn.net/yjclsx/article/details/70675057 /** * 调用流程上传文件接口上传文件 * @param url * @param ...
- java后台调用url
版权声明:本文为博主牟云飞原创文章,未经博主同意不得转载. https://blog.csdn.net/myfmyfmyfmyf/article/details/32690757 QXOutStrea ...
- java调用http请求json
最近遇到的问题,java如何调用http请求json: public class HttpClientUtil { private static final String CONTENT_TYPE_T ...
- Java后台使用httpclient入门HttpPost请求(form表单提交,File文件上传和传输Json数据)
一.HttpClient 简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 ...
- node作为中间层 —> 跨域请求java后台接口(使用http-proxy-middleware中间件)
情景:利用node的express 作为中间层,跨域调取java后台接口,由于java接口对session有判断,因此每次请求都必须在req的headers中需要带上cookie,否则接口报500错误 ...
随机推荐
- 环形buffer缓冲区
#include <stdio.h> #include <string.h> #include <malloc.h> struct CircleBuf { char ...
- 【HLSDK系列】overview(俯视图)
温馨提示:使用PC端浏览器阅读可获得最佳体验 阅读本文时,请时不时就对照参考图看一下. 什么是overview? 如果你有使用过3D模型制作工具,例如3dsMax等等,在编辑模型时这些软件通常会展示四 ...
- BibTex相关
标签(空格分隔): 杂七杂八的问题 又到了写论文的高峰期(?)在BibTeX中添加参考文献时,发现选项很多,对一些称呼还是一脸懵逼..阿一古,也许是最后一次写论文了,还弄清楚的还是清楚一下吧~ [转自 ...
- MT【114】构造二次函数
评:b+c,bc好比向量里的一组基底,可以将关于b,c的对称式表示出来.
- 每个 JavaScript 工程师都应懂的33个概念
简介 这个项目是为了帮助开发者掌握 JavaScript 概念而创立的.它不是必备,但在未来学习(JavaScript)中,可以作为一篇指南. 本篇文章是参照 @leonardomso 创立,英文版项 ...
- 【NOI】荷马史诗
追逐影子的人,自己就是影子 ——荷马 Allison最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛>和< ...
- 一步步创建第一个Docker App —— 1. 背景介绍
原文:https://docs.docker.com/engine/getstarted-voting-app/#/docker-stacks-and-services 你将会学习什么 本文创建 ...
- 【ZJOI 2018】 历史(lct)
历史 题目描述 九条可怜是一个热爱阅读的女孩子. 这个世界有 $n$ 个城市,这 $n$ 个城市被恰好 $n-1$ 条双向道路联通,即任意两个城市都可以互相到达.同时城市 $1$ 坐落在世界的中心,占 ...
- java关于类加载的面试题
---面试题 class SingleTon { private static SingleTon singleTon = new SingleTon(); public static int cou ...
- OpenCV-跟我学一起学数字图像处理之中值滤波
中值滤波(median filter)在数字图像处理中属于空域平滑滤波的内容(spatial filtering).对消除椒盐噪声具有很好的效果. 数学原理 为了讲述的便捷,我们以灰度图为例.RGB三 ...