调用的为阿里云API
我应用的框架是SpringBoot框架
短信购买地址
https://market.aliyun.com/pro...

以下是代码:
pom.xml中要导入的依赖:

<dependency>

        <groupId>com.alibaba</groupId>        <artifactId>fastjson</artifactId>        <version>1.2.15</version>    </dependency>    <dependency>        <groupId>org.apache.httpcomponents</groupId>        <artifactId>httpclient</artifactId>        <version>4.2.1</version>    </dependency>    <dependency>        <groupId>org.apache.httpcomponents</groupId>        <artifactId>httpcore</artifactId>        <version>4.2.1</version>    </dependency>    <dependency>        <groupId>commons-lang</groupId>        <artifactId>commons-lang</artifactId>        <version>2.6</version>    </dependency>    <dependency>        <groupId>org.eclipse.jetty</groupId>        <artifactId>jetty-util</artifactId>        <version>9.3.7.v20160115</version>    </dependency>    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>4.5</version>        <scope>test</scope>    </dependency>

写一个controller办法进行测试TestController.java

import java.util.HashMap;
import java.util.Map;

import org.apache.http.HttpResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.bjpowernode.beans.Student;
import com.bjpowernode.service.IStudentService;

@Controller
@RequestMapping("/test")
public class TestController {

@RequestMapping("/t.do" )public void t() {     String host = "http://yzx.market.alicloudapi.com";        String path = "/yzx/sendSms";        String method = "POST";        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("mobile", "这里填写你要发送的手机号码");        //querys.put("param", "code:1234");        //querys.put("param", "这里填写你和商家定义的变量名称和变量值填写格局看上一行代码");        querys.put("tpl_id", "这里填写你和商家商议的模板");        Map<String, String> bodys = new HashMap<String, String>();        try {            /**            * 重要提醒如下:            * HttpUtils请从            * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java            * 下载            *            * 相应的依赖请参照            * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml            */            HttpResponse response = HttpUtil.doPost(host, path, method, headers, querys, bodys);            System.out.println(response.toString());            //获取response的body            //System.out.println(EntityUtils.toString(response.getEntity()));        } catch (Exception e) {            e.printStackTrace();        }}

}
工具类HttpUtil.java

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class HttpUtil {

/** * get *  * @param host * @param path * @param method * @param headers * @param querys * @return * @throws Exception */public static HttpResponse doGet(String host, String path, String method,         Map<String, String> headers,         Map<String, String> querys)        throws Exception {          HttpClient httpClient = wrapClient(host);    HttpGet request = new HttpGet(buildUrl(host, path, querys));    for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());    }    return httpClient.execute(request);}/** * post form *  * @param host * @param path * @param method * @param headers * @param querys * @param bodys * @return * @throws Exception */public static HttpResponse doPost(String host, String path, String method,         Map<String, String> headers,         Map<String, String> querys,         Map<String, String> bodys)        throws Exception {          HttpClient httpClient = wrapClient(host);    HttpPost request = new HttpPost(buildUrl(host, path, querys));    for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());    }    if (bodys != null) {        List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();        for (String key : bodys.keySet()) {            nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key)));        }        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8");        formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8");        request.setEntity(formEntity);    }    return httpClient.execute(request);}   /** * Post String *  * @param host * @param path * @param method * @param headers * @param querys * @param body * @return * @throws Exception */public static HttpResponse doPost(String host, String path, String method,         Map<String, String> headers,         Map<String, String> querys,         String body)        throws Exception {          HttpClient httpClient = wrapClient(host);    HttpPost request = new HttpPost(buildUrl(host, path, querys));    for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());    }    if (StringUtils.isNotBlank(body)) {        request.setEntity(new StringEntity(body, "utf-8"));    }    return httpClient.execute(request);}/** * Post stream *  * @param host * @param path * @param method * @param headers * @param querys * @param body * @return * @throws Exception */public static HttpResponse doPost(String host, String path, String method,         Map<String, String> headers,         Map<String, String> querys,         byte[] body)        throws Exception {          HttpClient httpClient = wrapClient(host);    HttpPost request = new HttpPost(buildUrl(host, path, querys));    for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());    }    if (body != null) {        request.setEntity(new ByteArrayEntity(body));    }    return httpClient.execute(request);}/** * Put String * @param host * @param path * @param method * @param headers * @param querys * @param body * @return * @throws Exception */public static HttpResponse doPut(String host, String path, String method,         Map<String, String> headers,         Map<String, String> querys,         String body)        throws Exception {          HttpClient httpClient = wrapClient(host);    HttpPut request = new HttpPut(buildUrl(host, path, querys));    for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());    }    if (StringUtils.isNotBlank(body)) {        request.setEntity(new StringEntity(body, "utf-8"));    }    return httpClient.execute(request);}/** * Put stream * @param host * @param path * @param method * @param headers * @param querys * @param body * @return * @throws Exception */public static HttpResponse doPut(String host, String path, String method,         Map<String, String> headers,         Map<String, String> querys,         byte[] body)        throws Exception {          HttpClient httpClient = wrapClient(host);    HttpPut request = new HttpPut(buildUrl(host, path, querys));    for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());    }    if (body != null) {        request.setEntity(new ByteArrayEntity(body));    }    return httpClient.execute(request);}/** * Delete *   * @param host * @param path * @param method * @param headers * @param querys * @return * @throws Exception */public static HttpResponse doDelete(String host, String path, String method,         Map<String, String> headers,         Map<String, String> querys)        throws Exception {          HttpClient httpClient = wrapClient(host);    HttpDelete request = new HttpDelete(buildUrl(host, path, querys));    for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());    }    return httpClient.execute(request);}private static String buildUrl(String host, String path, Map<String, String> querys) throws UnsupportedEncodingException {    StringBuilder sbUrl = new StringBuilder();    sbUrl.append(host);    if (!StringUtils.isBlank(path)) {        sbUrl.append(path);    }    if (null != querys) {        StringBuilder sbQuery = new StringBuilder();        for (Map.Entry<String, String> query : querys.entrySet()) {            if (0 < sbQuery.length()) {                sbQuery.append("&");            }            if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {                sbQuery.append(query.getValue());            }            if (!StringUtils.isBlank(query.getKey())) {                sbQuery.append(query.getKey());                if (!StringUtils.isBlank(query.getValue())) {                    sbQuery.append("=");                    sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));                }                               }        }        if (0 < sbQuery.length()) {            sbUrl.append("?").append(sbQuery);        }    }    return sbUrl.toString();}private static HttpClient wrapClient(String host) {    HttpClient httpClient = new DefaultHttpClient();    if (host.startsWith("https://")) {        sslClient(httpClient);    }    return httpClient;}private static void sslClient(HttpClient httpClient) {    try {        SSLContext ctx = SSLContext.getInstance("TLS");        X509TrustManager tm = new X509TrustManager() {            public X509Certificate[] getAcceptedIssuers() {                return null;            }            public void checkClientTrusted(X509Certificate[] xcs, String str) {            }            public void checkServerTrusted(X509Certificate[] xcs, String str) {            }        };        ctx.init(null, new TrustManager[] { tm }, null);        SSLSocketFactory ssf = new SSLSocketFactory(ctx);        ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);        ClientConnectionManager ccm = httpClient.getConnectionManager();        SchemeRegistry registry = ccm.getSchemeRegistry();        registry.register(new Scheme("https", 443, ssf));    } catch (KeyManagementException ex) {        throw new RuntimeException(ex);    } catch (NoSuchAlgorithmException ex) {        throw new RuntimeException(ex);    }}

}
以上就能够实现短信发送性能,其中的code代码须要本人定义要发送的验证码,其次应用的模板为默认模板,要想用本人的能够分割客服批改。