Java通过第三方平台发送和验证手机验证码

本文详细介绍如何使用Java和第三方平台实现手机验证码的发送及验证功能。首先需要在mob.com注册并配置应用,接着导入所需jar包,最后编写发送与验证验证码的Java代码。

这里简单介绍下如果通过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);
		}
	}

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值