java短信接口 ,发送短信(形式二)

java短信接口 ,发送短信(方式二)

改方法是继 (java短信接口 ,发送短信(方式一) )文章后,新增的发送短信方法。

不同之处为:

①,使用org.apache.commons.httpclient.HttpClient 包

②,设置编码为gbk

③,可获取短信接口返回的内容,使用正则表达式,分别的result,description分别提示。

 

public static String smsSend(SmsBilder smsBilder) {
		String errorInfo = null;
		String resultInfo = null;
		Throwable error = null;
		try {
			org.apache.commons.httpclient.HttpClient httpclient = new org.apache.commons.httpclient.HttpClient();
			// 在这里执行短信发送
			String url = SmsConfig.sendBasicUrl;
			PostMethod post = new PostMethod(url);
			post.setRequestHeader("Content-Type",
					"application/x-www-form-urlencoded;charset=gbk");
			post.addParameter("SpCode", SmsConfig.spCode);
			post.addParameter("LoginName", SmsConfig.loginName);
			post.addParameter("Password", SmsConfig.password);
			post.addParameter("MessageContent", smsBilder.getMessageContent());
			post.addParameter("UserNumber", smsBilder.getUserNumber());
			httpclient.executeMethod(post);
			resultInfo = new String(post.getResponseBody(), "gbk");
			if (resultInfo!=null) {
				Pattern pattern = Pattern.compile("(?<=result\\=).*?(?=&)");
				Matcher m = pattern.matcher(resultInfo);
				String _result = "";
				String _description = "";
				while (m.find()) {
					_result = m.group();
				}
				if (_result!=null) {
					if (!_result.equals("0") && Integer.valueOf(_result)!=0) {
						pattern = Pattern.compile("(?<=description\\=).*");
						m = pattern.matcher(resultInfo);
						while (m.find()) {
							_description = m.group();
						}
						errorInfo = _description;
					}
				}
			}
		} catch (Exception e) {
			errorInfo = "短信发送错误";
			error = e;
		} finally {
			if (error != null) {
				logger.error(errorInfo, error);
			}
		}
		return errorInfo;
	}