这里简单介绍下如果通过java来发送和验证手机验证码,请按步骤一步一步操作。
一、注册第三方发送验证码平台
这里我用的是http://www.mob.com/
注册后后进入后台
1.添加SMSSDK
2.设置服务器IP地址
注意:这里的短信签名可以随便填,IP地址是你本地的IP 不知道的可以百度ip两个字,第一个显示的就是你的IP地址
3、获得appkey
二、编写java代码
1、导入所需要的jar包
这里用到两个包,一个是commons-httpclient 还有一个是 org.json
2、编写代码
package com.lei.test;
import java.io.IOException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class MobSendMessage {
private String appkey ="你的appkey";
public MobSendMessage(String appkey) {
this.appkey = appkey;
}
public MobSendMessage() {
}
/**
* 发送验证码
* @param phone 给那个用户发,用户的手机号
* @param zone 区号,默认是86
* @throws HttpException
* @throws IOException
*/
public void sendMessage(String phone,String zone) throws HttpException, IOException{
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("https://webapi.sms.mob.com/sms/sendmsg");
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf8");//在头文件中设置转码
post.addRequestHeader("Accept","application/json");
NameValuePair[] data ={ new NameValuePair("appkey", appkey),new NameValuePair("phone", phone),new NameValuePair("zone",zone)};
post.setRequestBody(data);
client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:"+statusCode);
for(Header h : headers)
{
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes("utf8"));
System.out.println(result);
post.releaseConnection();
}
/**
*
* 验证手机号
* @param phone 用户手机号
* @param zone 区号
* @param code 验证码
* @return
* @throws HttpException
* @throws IOException
*/
public String checkCode(String phone,String zone,String code) throws HttpException, IOException{
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("https://webapi.sms.mob.com/sms/checkcode");
//设置头信息
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf8");//在头文件中设置转码
post.addRequestHeader("Accept","application/json");
//设置参数信息
NameValuePair[] data ={ new NameValuePair("appkey", appkey),new NameValuePair("phone", phone),new NameValuePair("zone","86"),new NameValuePair("code",code)};
post.setRequestBody(data);
//提交
client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:"+statusCode);
System.out.println("**********************我是分割线**************************");
for(Header h : headers)
{
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes("utf8"));
System.out.println(result);
post.releaseConnection();
System.out.println("====================================================");
return result;
}
}
3、编写测试类
package com.lei.test;
import java.io.IOException;
import org.apache.commons.httpclient.HttpException;
import org.json.JSONObject;
import org.junit.Test;
public class TestMobSendMessage {
@Test
public void sendMessageTest() throws HttpException, IOException{
MobSendMessage mobSendMessage = new MobSendMessage();
mobSendMessage.sendMessage("测试的手机号","86");
}
@Test
public void checkCodeTest() throws HttpException, IOException{
MobSendMessage mobSendMessage = new MobSendMessage();
String result = mobSendMessage.checkCode("测试的手机号", "86", "验证码");
JSONObject jsonObject = new JSONObject(result);
int status =(int) jsonObject.get("status");
String error = (String) jsonObject.get("error");
if (status == 200) {
System.out.println("验证成功");
}else {
System.out.println("验证失败,状态码:"+status+"error:"+error);
}
}
}
本文详细介绍如何使用Java和第三方平台实现手机验证码的发送及验证功能。首先需要在mob.com注册并配置应用,接着导入所需jar包,最后编写发送与验证验证码的Java代码。
732

被折叠的 条评论
为什么被折叠?



