当前位置 : 主页 > 编程语言 > java >

云片短信API

来源:互联网 收集:自由互联 发布时间:2021-06-28
功能说明 功能说明本项目是云片短信发送接口的Java项目,基于Apache HttpClient v4.3.操作类必须依赖jar包 httpcore-4.3.2.jar httpclient-4.3.5.jar commons-codec-1.6.jar commons-logging-1.1.3.jar常见问题提示1. 代
功能说明
功能说明
本项目是云片短信发送接口的Java项目,基于Apache HttpClient v4.3.

操作类必须依赖jar包
    httpcore-4.3.2.jar
    httpclient-4.3.5.jar
    commons-codec-1.6.jar
    commons-logging-1.1.3.jar
常见问题提示
1. 代码打开是乱码
    项目代码格式为UTF-8,请注意您的开发环境设置。
2. 发送返回“非法的apikey”
    请用您注册的账号登录云片官网(http://www.yunpian.com),在账户中心首页查看您自己的apikey,检查是否和代码中设置的一致。
3. 发送返回“IP没有权限”
    请用您的注册的账号登录云片官网(http://www.yunpian.com),在“账户设置”的“IP白名单”设置中将自己测试机的外网IP加进去。
    如不清楚是哪个IP,可以用错误提示信息里显示的IP,或访问http://www.ip138.com/查看自己的IP
JavaSmsApi.java
package com.yunpian.demo;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;


/***
 * @ProjectName:  yunpian
 * @PackageName:  com.yunpian.demo 
 * @ClassName: JavaSmsApi 
 * @Description: 短信http接口的java代码调用    基于Apache HttpClient 4.3
 * @Author: 伏永正
 * @Date: 2017年11月1日 上午11:49:53
 */
public class JavaSmsApi {
	//修改为您的apikey.apikey可在官网(http://www.yuanpian.com)登录后获取
    private static String apikey = "官网获取apikey";
    //查账户信息的http地址
    private static String URI_GET_USER_INFO = "https://sms.yunpian.com/v2/user/get.json";
    //使用单条发送短信接口http地址  	
    private static String URI_SEND_SMS = "https://sms.yunpian.com/v2/sms/single_send.json";
    //批量发送相同内容短信http地址
    private static String URI_BATCH_SEND_SMS = "https://sms.yunpian.com/v2/sms/batch_send.json";
    //批量发送不同内容短信http地址
    private static String URI_MULTI_SEND_SMS = "https://sms.yunpian.com/v2/sms/multi_send.json";
    //指定模板单发送接口的http地址  						
    private static String URI_TPL_SEND_SMS = "https://sms.yunpian.com/v2/sms/tpl_single_send.json";
    //指定模板群发送接口的http地址  	
    private static String URI_TPL_BATCH_SEND_SMS = "https://sms.yunpian.com/v2/sms/tpl_batch_send.json";
    //发送语音验证码接口的http地址
    private static String URI_SEND_VOICE = "https://voice.yunpian.com/v2/voice/send.json";
    //编码格式。发送编码格式统一用UTF-8
    private static String ENCODING = "UTF-8";
    
    
    /***
     * @MethodName:  getUserInfo 
     * @Description:  取账户信息
     * @Return:  String  json格式字符串
     * @Author:  伏永正
     * @Date:  2017年11月1日上午11:34:40
     * @throws IOException
     * @throws URISyntaxException 
     */
    public static String getUserInfo() throws IOException, URISyntaxException {
        Map
 
   params = new HashMap
  
   (); params.put("apikey", apikey); return post(URI_GET_USER_INFO, params); } /*** * @MethodName: sendSms * @Description: 单条短信发送,智能匹配短信模板 * @Params: text 需要使用已审核通过的模板或者默认模板 * @Params: mobile 接收的手机号,仅支持单号码发送 * @Return: String json格式字符串 * @Author: 伏永正 * @Date: 2017年11月1日上午11:40:24 * @throws: IOException */ public static String sendSms(String text, String mobile) throws IOException { Map
   
     params = new HashMap
    
     (); params.put("apikey", apikey); params.put("text", text); params.put("mobile", mobile); return post(URI_SEND_SMS, params); } /*** * @MethodName: batchSend * @Description: 批量发送短信,相同内容多个号码,智能匹配短信模板 * @Params: text 需要使用已审核通过的模板或者默认模板 * @Params: mobile 接收的手机号,多个手机号用英文逗号隔开 * @Return: String json格式字符串 * @Author: 伏永正 * @Date: 2017年11月1日下午12:15:30 */ public static String batchSend(String text, String mobile) { Map
     
       params = new HashMap
      
       ();//请求参数集合 params.put("apikey", apikey); params.put("text", text); params.put("mobile", mobile); return post(URI_BATCH_SEND_SMS, params);//请自行使用post方式请求,可使用Apache HttpClient } /*** * @MethodName: tplSendSms * @Description: 通过指定模板发送短信(不推荐) * @Params: tpl_id 模板id * @Params: tpl_value 模板变量值 * @Params: mobile 接受的手机号 * @Return: String json格式字符串 * @Author: 伏永正 * @Date: 2017年11月1日上午11:41:48 * @throws IOException */ public static String tplSendSms(long tpl_id, String tpl_value, String mobile) throws IOException { Map
       
         params = new HashMap
        
         (); params.put("apikey", apikey); params.put("tpl_id", String.valueOf(tpl_id)); params.put("tpl_value", tpl_value); params.put("mobile", mobile); return post(URI_TPL_SEND_SMS, params); } /*** * @MethodName: multiSend * @Description: 批量发送不同短信,多个号码,智能匹配短信模板 * @Params: @param text 需要使用已审核通过的模板或者默认模板 * @Params: @param mobile 接收的手机号,多个手机号用英文逗号隔开 * @Return: String json格式字符串 * @Author: 伏永正 * @Date: 2017年11月1日下午12:32:27 * @throws UnsupportedEncodingException */ public static String multiSend(String text,String mobile) throws UnsupportedEncodingException { Map
         
           params = new HashMap
          
           ();//请求参数集合 params.put("apikey", apikey); params.put("text", text); params.put("mobile", mobile); return post(URI_MULTI_SEND_SMS, params);//请自行使用post方式请求,可使用Apache HttpClient } /*** * @MethodName: sendVoice * @Description: 通过接口发送语音验证码 * @Params: mobile 接收的手机号、固话(需加区号) * @Params: code 验证码,支持4~6位阿拉伯数字 * @Return: String * @Author: 伏永正 * @Date: 2017年11月1日上午11:43:52 */ public static String sendVoice(String mobile, String code) { Map
           
             params = new HashMap
            
             (); params.put("apikey", apikey); params.put("mobile", mobile); params.put("code", code); return post(URI_SEND_VOICE, params); } /*** * @MethodName: post * @Description: 基于HttpClient 4.3的通用POST方法 * @Params: url 提交的URL * @Params: paramsMap 提交<参数,值>Map * @Return: String 提交响应 * @Author: 伏永正 */ public static String post(String url, Map
             
               paramsMap) { CloseableHttpClient client = HttpClients.createDefault(); String responseText = ""; CloseableHttpResponse response = null; try { HttpPost method = new HttpPost(url); if (paramsMap != null) { List
              
                paramList = new ArrayList
               
                (); for (Map.Entry
                
                  param : paramsMap.entrySet()) { NameValuePair pair = new BasicNameValuePair(param.getKey(), param.getValue()); paramList.add(pair); } method.setEntity(new UrlEncodedFormEntity(paramList, ENCODING)); } response = client.execute(method); HttpEntity entity = response.getEntity(); if (entity != null) { responseText = EntityUtils.toString(entity); } } catch (Exception e) { e.printStackTrace(); } finally { try { response.close(); } catch (Exception e) { e.printStackTrace(); } } return responseText; } }
                
               
              
             
            
           
          
         
        
       
      
     
    
   
  
 
httpcore-4.3.2.jar httpcore-4.3.2.jar httpclient-4.3.5.jar httpclient-4.3.5.jar commons-codec-1.6.jar commons-codec-1.6.jar commons-logging-1.1.3.jar commons-logging-1.1.3.jar
网友评论