天天看點

java通過SMS短信平台實作發短信的功能

涓€銆佷嬌鐢╦ava鍙戦€佺煭淇$殑鏂規硶锛?

java鍙戦€佹墜鏈虹煭淇★紝閫氬父鏈夊嚑绉嶆柟娉曪細

锛?锛変嬌鐢╳ebserive鎺ュ彛鍙戦€佹墜鏈虹煭淇★紱

锛?锛変嬌鐢ㄧ煭淇$尗鐨勬柟寮忚繘琛岀煭淇$殑鍙戦€侊紝姣旇緝甯哥敤鐨勬柟寮忥紝涓嶈繃闇€瑕佽喘涔扮‖浠惰澶囷紱

锛?锛変嬌鐢ㄤ腑鍥界綉寤虹殑SMS鐭俊骞沖彴锛屼嬌鐢ㄥ墠闇€瑕佹敞鍐岋紝杩欓噷鍙褰昐MS鎺ュ彛鐨勪嬌鐢ㄣ€?

浜屻€佹帴鍙g殑浣跨敤锛?

锛?锛夊鍏ar:

commons-logging-1.2.jar

commons-codec-1.10.jar

commons-httpclient-3.1.jar

maven渚濊禆:

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

<dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
</dependency>
           

锛?锛塽til:

package com.serviceMarket.common.util;

import java.io.IOException;
import java.util.HashMap;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

/** 
* 绫昏鏄?:SMS_webchinese鍙戦€佺煭淇til
*/
public class SendMsgUtil {
	
	public static HashMap<String,String> getMessageStatus(String phone){
		HashMap<String,String> map=new HashMap<String,String>();
		
		HttpClient client = new HttpClient();
		
		PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn"); //sms骞沖彴鎺ュ彛
		post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//鍦ㄥご鏂囦歡涓缃紪鐮侀泦鏍煎紡
		
		int num=(int)((Math.random()*9+1)*100000);//6浣嶆暟楠岃瘉鐮?		String code=num+"";
		
		NameValuePair[] data ={ 
				new NameValuePair("Uid", "鐢ㄦ埛鍚?),//sms骞沖彴鐨勭敤鎴峰悕
				new NameValuePair("Key", "鐭俊绉橀挜"),//鐭俊绉橀挜锛屼笉鏄瘑鐮?				new NameValuePair("smsMob","鐩殑鎵嬫満鍙風爜"),//鐩殑鎵嬫満鍙風爜锛屽涓墜鏈哄彿鐢ㄥ崐瑙掗€楀彿闅斿紑
				new NameValuePair("smsText","鏈楠岃瘉鐮佷負:"+code+""+"锛屾湁鏁堟椂闂翠負5鍒嗛挓")//鐭俊鍐呭锛岃嚜瀹氫箟
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽};
		map.put("code", code);
		post.setRequestBody(data);

		try {
			client.executeMethod(post);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//鎵撳嵃鐘舵€佺爜鍜屽搷搴斿ご淇℃伅
		int statusCode = post.getStatusCode();
		System.out.println("statusCode:"+statusCode);
		Header[] headers = post.getResponseHeaders();
		for(Header h : headers)
		{
			System.out.println(h.toString());
		}
		
	
		String result = null;
		try {
			result = new String(post.getResponseBodyAsString().getBytes("gbk"));
		} catch (IOException e) {
			e.printStackTrace();
		} 
		System.out.println(result); //鎵撳嵃杩斿洖鐨勬秷鎭姸鎬?		map.put("result", result);

		post.releaseConnection();
		return map;
	}	
}
           

锛?锛塁ontroller锛?

@Controller聽
public class Controller {
聽聽聽聽聽聽聽聽//鐭俊鍙戦€佹帴鍙?	@RequestMapping(value="/GET/authentication/{phone}")
	@ResponseBody
聽聽聽聽聽聽聽聽//杩斿洖缁撴灉Result瀵矽薄锛氭垚鍔熸椂杩斿洖涓€涓?浣嶆暟楠岃瘉鐮侊紝澶辮觸鏃惰繑鍥瀎alse
	public Result authentication(@PathVariable(value="phone")String phone,HttpServletRequest request){
		
		HashMap<String, String> map = SendMsgUtil.getMessageStatus(phone); //璋冪敤鍙戦€佺煭淇℃帴鍙?			
		String result = map.get("result");//鑾峰彇鍒皉esult鍊?		if (result.trim().equals("1")) {//濡傛灉涓?锛岃〃绀烘垚鍔熷彂閫?			
			String code = map.get("code");//鑾峰彇鍙戦€佺殑楠岃瘉鐮佸唴瀹?			HttpSession session = request.getSession(); //璁劇疆session
			session.setAttribute("code", code);//灏嗙煭淇¢獙璇佺爜鏀懼埌session涓繚瀛?			session.setMaxInactiveInterval(60 * 5);//淇濆瓨鏃堕棿 鏆傛椂璁懼畾涓?鍒嗛挓
			
			System.out.println(code);
			return Result.ok(code);
			
		} else {
			//鐭俊鍙戦€佸け璐?			return Result.ok("false");
		}		
	}
}
           

锛?锛夌煭淇″彂閫佸悗鐨勮繑鍥炲€鹼細

鐭俊鍙戦€佸悗杩斿洖鍊?/th> 璇淬€€鏄?/th>
-1 娌℃湁璇ョ敤鎴瘋處鎴?/td>
-2 鎺ュ彛瀵嗛挜涓嶆纭紝涓嶆槸璐︽埛鐧婚檰瀵嗙爜
-21 MD5鎺ュ彛瀵嗛挜鍔犲瘑涓嶆纭?/td>
-3 鐭俊鏁伴噺涓嶈凍
-11 璇ョ敤鎴瘋绂佺敤
-14 鐭俊鍐呭鍑虹幇闈炴硶瀛楃
-4 鎵嬫満鍙鋒牸寮忎笉姝g‘
-41 鎵嬫満鍙風爜涓虹┖
-42 鐭俊鍐呭涓虹┖
-51 鐭俊绛懼悕鏍煎紡涓嶆纭? 鎺ュ彛绛懼悕鏍煎紡涓猴細銆愮鍚嶅唴瀹廣€?/td>
-6 IP闄愬埗
澶т簬0 鐭俊鍙戦€佹暟閲?/td>