注册手机号码以获取随机验证码
最编程
2024-04-08 13:19:04
...
短信验证码接口使用的是阿里云上的短信平台API,上面有很多免费的,可以拿来测试使用
本人写的稍显简单,有不足之处敬请谅解
前台jsp
<script type="text/javascript">
function sendMsg() {
var phone = $("#phone").val();//获取输入的手机号
var code = $("#code").val();//获取输入的验证码
$.ajax({
type:"post",
data:{
phone:phone,
code:code
},
url:"${pageContext.request.contextPath }/list", //使用的是绝对路径
success:function(data) {
$("#mcode").val(data)
}
});
}
//验证码判断,登录进主页面
function login() {
var code = $("#code").val();
var mcode = $("#mcode").val();
if(code == mcode)
window.location.href="${pageContext.request.contextPath }/trun"
else {
alert("验证码输入错误")
}
}
</script>
后台,大部分代码是从API复制,获取你输入的手机号,略作修改就可以了
public class SendMessage {
@RequestMapping("/list")
@ResponseBody
public String login(@RequestParam("phone") String phone,@RequestParam("code") String code,HttpServletRequest req,HttpServletResponse resp) throws IOException {
//生成6位随机验证码
Random random = new Random();
String result="";
for (int i=0;i<6;i++)
{
result=result+random.nextInt(10);
}
String host = "https://feginesms.market.alicloudapi.com";
String path = "/codeNotice";
String method = "GET";
String appcode = "你自己的appcode";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + appcode);
Map<String, String> querys = new HashMap<String, String>();
querys.put("param", result);//生成的随机验证码
querys.put("phone", phone);//输入的手机号
querys.put("sign", "1");
querys.put("skin", "1");
//JDK 1.8示例代码请在这里下载: http://code.fegine.com/Tools.zip
try {
HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
//System.out.println(response.toString());如不输出json, 请打开这行代码,打印调试头部状态码。
//状态码: 200 正常;400 URL无效;401 appCode错误; 403 次数用完; 500 API网管错误
//获取response的body
//System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
推荐阅读
-
apifox 可随机生成手机号码并优先处理验证码请求。
-
Jmeter----- 随机生成手机号码的最后 8 位数字,并去掉这些数字,以便对已注册的手机号码进行压力测试。
-
注册手机号码以获取随机验证码
-
用 Python3 生成 4 位随机验证码和手机号码
-
玩转Java底层:JMX详解 - jconsole与自定义MBean监控工具的实际应用与区别" 在日常JVM调优中,我们熟知的jconsole工具通过JMX包装的bean以图形化形式展示管理数据,而像jstat和jmap这类内建监控工具则由JVM直接支持。本文将以jconsole为例,深入讲解其实质——基于JMX的MBean功能,包括可视化界面上的bean属性查看和操作调用。 MBeans在jconsole中的体现是那些可观察的组件属性和方法,如上图所示,通过名为"Verbose"的属性能看到其值为false,同时还能直接操作该bean的方法,例如"closeJerryMBean"。 尽管jconsole给我们提供了直观的可视化界面,但请注意,这里的MBean并非固定不变,开发者可根据JMX提供的接口将自己的自定义bean展示到jconsole。以下步骤展示了如何创建并注册一个名为"StudyJavaMBean"的自定义MBean: 1. 首先定义接口`StudyJavaMBean`,接口需遵循MBean规范,即后缀为"MBean"且包含getter方法代表属性,如`getApplicationName`,和无返回值的setter方法代表操作,如`closeJerryMBean`。 ```java public interface StudyJavaMBean { String getApplicationName(); void closeJerryMBean(); } ``` 2. 编写接口的实现类`StudyJavaMBeanImpl`,实现接口中的方法: ```java public class StudyJavaMBeanImpl implements StudyJavaMBean { @Override public String getApplicationName() { return "每天学Java"; } @Override public void closeJerryMBean() { System.out.println("关闭Jerry应用"); } } ``` 3. 在代码中注册自定义MBean,涉及的关键步骤包括: - 获取平台MBeanServer - 定义ObjectName,指定唯一的MBean标识符 - 注册MBean到服务器 - 启动RMI连接器服务,以便jconsole能够访问 ```java public void registerMBean() throws Exception { // ... 具体实现省略 ... } ``` 实际运行注册后的MBean,您将在jconsole中发现并查看自定义bean的属性和调用相关方法。然而,这种方式相较于传统的属性/日志查看和HTTP接口,实用性相对有限,可能存在潜在的安全风险。但不可否认的是,JMX及其MBean机制对于获取操作系统信息、内存状态等关键性能指标仍然具有重要价值。例如: 1. **获取操作系统信息**:通过JMX MBean,可以直接获取到诸如CPU使用率、操作系统版本等系统级信息,这对于资源管理和优化工作具有显著帮助。
-
使用和思考jmeter中固定定时器的影响 在对jmeter中固定定时器的使用和思考方面,我们可以考虑以下问题:固定定时器的作用是什么? 在最近的使用场景中,我们可以看到固定定时器的作用主要有两个方面:确保了一些请求的数据建立的先后顺序和在获取服务端某些数据之前加固定定时器以确保之前的请求已经在服务端生成了数据。 此外,固定定时器还可以控制请求的时间间隔,延迟请求到达服务器的时间,以模拟真实用户的行为。 在特定的场景需求下,我们可能不需要很大的tps,而是要控制特定的处理能力,并观察系统的稳定性。 除了固定定时器,jmeter中还有其他类型的定时器,例如高斯随机定时器、均匀随机定时器、固定吞吐量定时器、同步定时器等。 定时器是在每个采样器之前执行的,而不是之后。当执行一个采样器之前,当前作用域内的所有定时器都将被执行。如果希望定时器仅应用于某个采样器,则可以将定时器作为其子节点加入。 最后,我们需要思考一个问题:固定定时器对响应时间有影响吗?