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错误 ...
随机推荐
- gitlab 本地建库配置 config
先下git(?)https://download.tortoisegit.org/tgit/2.6.0.0/ 小乌龟下载 http://gitlab.didu86.com:9090/wxcode/fa ...
- 实现Java中的ArrayList
最近深受轮子哥影响,觉得造一些轮子应该会对自己的技术功底有一定的帮助,就决定先从简单的容器开始实现.废话不多说,就先实现一个Java中的ArrayList. ArrayList是我们在Java中使用非 ...
- 【Java并发编程】之十一:线程间通信中notify通知的遗漏
notify通知的遗漏很容易理解,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块 ...
- 模板:快速傅里叶变换(FFT)
参考:http://blog.csdn.net/f_zyj/article/details/76037583 如果公式炸了请去我的csdn博客:http://blog.csdn.net/luyouqi ...
- HTTP状态码的含义: 200:400:403:404:408:500:503:504
http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101( ...
- js正则取出一个字符串小括号中的内容
var aa="ldfjsldfj(dsfasjfj3124123)"; var result = aa.match(/\(([^)]*)\)/); // 此时result=[&q ...
- IEEE 754浮点数表示标准
二进制数的科学计数法 C++中使用的浮点数包括采用的是IEEE标准下的浮点数表示方法.我们知道在数学中可以将任何十进制的数写成以10为底的科学计数法的形式,如下 其中显而易见,因为如果a比10大或者比 ...
- UESTC--1468
题目:A Coin Problem 原题链接:http://acm.uestc.edu.cn/problem.php?pid=1468 分析:满足裴波纳契数列,打表找周期. #include<i ...
- libcurl代码示例
http://note.youdao.com/noteshare?id=e60a679d1731c870ff45e403de81a2c0
- 802.11 ------ Beacon帧、Beacon Interval、TBTT、Listen Interval、TIM、DTIM
Beacon帧:Beacon的实际发送一般都是采用最低速率的,其包含两个原因,1)beacon帧是一个广播帧,其没有ACK反馈,所以无法设置重传机制,2)beacon帧目的是广播AP的基本信息,所以希 ...