中国网建短信平台接口

http://www.smschinese.cn/api.shtml

步骤:

1. 短信通平台用户注册: http://www.smschinese.cn/reg.shtml

2.用户登录:用户登录之后,可以发送5条免费短信。

3.用户信息修改:需要修改密码和短信签名(短信开头会加上【短信签名内容】,一般为公司名或产品名的简称)

4.点击短信API接口

点击JAVA程序示例

下载演示程序

解压后,打开其中一个目录,如msgProGBK,目录结构如下

5.测试

5.1 用eclipse打开

用eclipse打开解压后的目录,注意需要给.java文件添加包,例如:

demo里代码已经写好,贴出来,方便查看

HttpClientUtil.java

package msgProGBK;import java.io.IOException;
import java.net.URL;
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.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.DefaultHostnameVerifier;
import org.apache.http.conn.util.PublicSuffixMatcher;
import org.apache.http.conn.util.PublicSuffixMatcherLoader;
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;public class HttpClientUtil {  private RequestConfig requestConfig = RequestConfig.custom()  .setSocketTimeout(15000)  .setConnectTimeout(15000)  .setConnectionRequestTimeout(15000)  .build();  private static HttpClientUtil instance = null;  private HttpClientUtil(){}  public static HttpClientUtil getInstance(){  if (instance == null) {  instance = new HttpClientUtil();  }  return instance;  }  /** * 发送 post请求 * @param httpUrl 地址 */  public String sendHttpPost(String httpUrl) {  HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPost    return sendHttpPost(httpPost,"utf-8");  }  /** * 发送 post请求 * @param httpUrl 地址 * @param maps 参数 *  @param type 字符编码格式 */  public String sendHttpPost(String httpUrl, Map<String, String> maps,String type) {  HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPost    // 创建参数队列    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  for (String key : maps.keySet()) {  nameValuePairs.add(new BasicNameValuePair(key, maps.get(key)));  }  try {  httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, type));  } catch (Exception e) {  e.printStackTrace();  }  return sendHttpPost(httpPost,type);  }  /** * 发送Post请求 * @param httpPost * @return */  private String sendHttpPost(HttpPost httpPost,String reponseType) {  CloseableHttpClient httpClient = null;  CloseableHttpResponse response = null;  HttpEntity entity = null;  String responseContent = null;  try {  // 创建默认的httpClient实例.  httpClient = HttpClients.createDefault();  httpPost.setConfig(requestConfig);  // 执行请求  response = httpClient.execute(httpPost);  entity = response.getEntity();  responseContent = EntityUtils.toString(entity, reponseType);  } catch (Exception e) {  e.printStackTrace();  } finally {  try {  // 关闭连接,释放资源  if (response != null) {  response.close();  }  if (httpClient != null) {  httpClient.close();  }  } catch (IOException e) {  e.printStackTrace();  }  }  return responseContent;  }  /** * 发送 get请求 * @param httpUrl */  public String sendHttpGet(String httpUrl) {  HttpGet httpGet = new HttpGet(httpUrl);// 创建get请求  return sendHttpGet(httpGet);  }  /** * 发送 get请求Https * @param httpUrl */  public String sendHttpsGet(String httpUrl) {  HttpGet httpGet = new HttpGet(httpUrl);// 创建get请求  return sendHttpsGet(httpGet);  }  /*** @Title: sendMsgUtf8* @Description: TODO(发送utf8)* @param: @param Uid* @param: @param Key* @param: @param content* @param: @param mobiles* @param: @return     * @return: int     * @throws*/@SuppressWarnings({ "rawtypes", "unchecked" })public int sendMsgUtf8(String Uid,String Key,String content,String mobiles){Map maps = new HashMap();maps.put("Uid", Uid);maps.put("Key", Key);maps.put("smsMob", mobiles);maps.put("smsText", content);String result = sendHttpPost("http://utf8.sms.webchinese.cn", maps, "utf-8");return Integer.parseInt(result);}/*** @Title: sendMsgUtf8* @Description: TODO(发送utf8)* @param: @param Uid* @param: @param Key* @param: @param content* @param: @param mobiles* @param: @return     * @throws*/@SuppressWarnings({ "rawtypes", "unchecked" })public int sendMsgGbk(String Uid,String Key,String content,String mobiles){Map maps = new HashMap();maps.put("Uid", Uid);maps.put("Key", Key);maps.put("smsMob", mobiles);maps.put("smsText", content);String result = sendHttpPost("http://gbk.sms.webchinese.cn", maps, "gbk");return Integer.parseInt(result);}/** * 发送Get请求 * @param httpPost * @return */  private String sendHttpGet(HttpGet httpGet) {  CloseableHttpClient httpClient = null;  CloseableHttpResponse response = null;  HttpEntity entity = null;  String responseContent = null;  try {  // 创建默认的httpClient实例.  httpClient = HttpClients.createDefault();  httpGet.setConfig(requestConfig);  // 执行请求  response = httpClient.execute(httpGet);  entity = response.getEntity();  responseContent = EntityUtils.toString(entity, "UTF-8");  } catch (Exception e) {  e.printStackTrace();  } finally {  try {  // 关闭连接,释放资源  if (response != null) {  response.close();  }  if (httpClient != null) {  httpClient.close();  }  } catch (IOException e) {  e.printStackTrace();  }  }  return responseContent;  }  /** * 发送Get请求Https * @param httpPost * @return */  private String sendHttpsGet(HttpGet httpGet) {  CloseableHttpClient httpClient = null;  CloseableHttpResponse response = null;  HttpEntity entity = null;  String responseContent = null;  try {  // 创建默认的httpClient实例.  PublicSuffixMatcher publicSuffixMatcher = PublicSuffixMatcherLoader.load(new URL(httpGet.getURI().toString()));  DefaultHostnameVerifier hostnameVerifier = new DefaultHostnameVerifier(publicSuffixMatcher);  httpClient = HttpClients.custom().setSSLHostnameVerifier(hostnameVerifier).build();  httpGet.setConfig(requestConfig);  // 执行请求  response = httpClient.execute(httpGet);  entity = response.getEntity();  responseContent = EntityUtils.toString(entity, "UTF-8");  } catch (Exception e) {  e.printStackTrace();  } finally {  try {  // 关闭连接,释放资源  if (response != null) {  response.close();  }  if (httpClient != null) {  httpClient.close();  }  } catch (IOException e) {  e.printStackTrace();  }  }  return responseContent;  }  /*** @Title: getErrorMsg* @Description: TODO(返回异常原因)* @param: @param errorCode*/public String getErrorMsg(int errorCode){if(errorCode==-1){return "没有该用户账户";}else if(errorCode==-2){return "接口密钥不正确";}else if(errorCode==-3){return "短信数量不足";}else if(errorCode==-4){return "手机号格式不正确";}else if(errorCode==-21){return "MD5接口密钥加密不正确";}else if(errorCode==-11){return "该用户被禁用";}else if(errorCode==-14){return "短信内容出现非法字符";}else if(errorCode==-41){return "手机号码为空";}else if(errorCode==-42){return "短信内容为空";}else if(errorCode==-51){return "短信签名格式不正确";}else if(errorCode==-6){return "IP限制";}else{return "未知错误码:"+errorCode;}}
}  

test.java

package msgProGBK;
import java.util.HashMap;
import java.util.Map;public class test {//用户名private static String Uid = "填入网建网的登录用户名";//接口安全秘钥private static String Key = "填入密钥";//手机号码,多个号码如13800000000,13800000001,13800000002private static String smsMob = "填写要发送到的手机号";//短信内容private static String smsText = "验证码:测试一下8888";public static void main(String[] args) {HttpClientUtil client = HttpClientUtil.getInstance();//GBK发送int resultGbk = client.sendMsgGbk(Uid, Key, smsText, smsMob );if(resultGbk>0){System.out.println("GBK成功发送条数=="+resultGbk);}else{System.out.println(client.getErrorMsg(resultGbk));}}
}

注意修改如下信息: 
Uid = "填入网建网的登录用户名";
Key = "填入密钥";  参考:
密钥的获取方式
smsMob = "填写要发送到的手机号";
smsText = "验证码:测试一下8888";

密钥的获取方式:点击修改短息密钥,复制短信密钥,填入Key中

运行test.java,  手机接收到的短信如下:

5.2 用IDEA maven方式

用maven方式更容易追踪源码,方便理解代码。

新建maven工程,选maven-archetype-quickstart

修改pom.xml,添加依赖

    <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.10</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.4.12</version></dependency>

新建两个类

HttpClientUtil.java和test.java,代码和上面一样。

运行测试。

完成!enjoy it!

使用SMS网建短信通平台发送短信-Java示例相关推荐

  1. sms 短信通平台 发送短信

    1.首先需要一个账户 2.导入jar包     import java.io.UnsupportedEncodingException; import org.apache.commons.httpc ...

  2. Java利用中国网建SMS短信通平台发送手机短信

    JAVA发送手机短信,流传有几种方法: (1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册; (2)使用短信mao的方式进行短信的 ...

  3. 上海移动通信企业短信通平台接口协议

    上海移动通信 企业短信通平台接口协议 Enterprise Message Point to Point, EMPP (v 2.0) 上海移动通信有限公司 2004 年6 月 上海移动通信有限责任公司 ...

  4. 商务短信通平台-- 建设实施方案

    商务短信通平台-- 建设实施方案 目录 第一章 商务短信平台概述.... 2 1.1 概述... 2 1.2 目的... 2 1.3 范围... 2 第2章 商务短信平台功能.... 2 2.1 商务 ...

  5. java发送短信模板_java发送短信

    java发送短信一般步骤 一.在中国网建中注册用户:本程序是通过中国网建提供的SMS短信平台实现的,该平台新用户注册可以拥有免费5条普通短信和3条彩信,足够进行尝试和体验了.中国网建注册地址:http ...

  6. TP5调用阿里云短信接口实现发送短信功能

    TP5调用阿里云短信接口实现发送短信功能 工作需要,对接阿里云的短信服务,借此记录一下(网站 www.lelee.top) 主要分为两个部分,一是下载官方的Demo事例,这个不需要多说,自己去下载就行 ...

  7. java调用短信接口实现发送短信

    java调用短信接口实现发送短信 1.下载接口文件 2.打开java文件夹 2.1获取jar包依赖 2.2获取代码模板 3.创建项目 3.1打开eclipse软件,创建一个动态的web项目 3.2导入 ...

  8. 使用华为短信包,发送短信Result=61问题解决

    使用华为短信包,发送短信出现了Result=61的返回. 网上说是有效时间失效 注释: /** * 创建一个发送短信消息,传入消息的各字段的值,并对各参数值进行判断,不符合要求则抛出异常 * 按要求把 ...

  9. 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)

    获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...

最新文章

  1. 百度之星12月30号题目之维基解密
  2. Java中return的两种用法
  3. 图片裁剪和异步上传插件--一步到位(记录)
  4. mysql事务操作_mysql的事务操作
  5. websocket wss_使用wss和HTTPS / TLS保护WebSocket的安全
  6. 后台系统可扩展性学习笔记(十二)NoSQL
  7. 退居二线VS在深圳发展,一个十年IT人的选择之难
  8. Fatal Error[Pe1696]:cannot open source file “sys.h”
  9. 一键部署 Spring Boot 到远程 Docker 容器
  10. UVa 202 Repeating Decimals
  11. mysql —— 分表分区(1)
  12. ge linux安装apt_linux – 一个通用的bash脚本,用于安装apt-ge...
  13. java字符串加密解密
  14. 插件学习笔记:搜索引擎ElasticSearch
  15. CPC23-4-K. 喵喵的神数 (数论 Lucas定理)
  16. 自定义关机计算机,win7自定义定时关机设置方法是什么
  17. web前端简易网页制作
  18. web(vue) 简单使用 mixpanel 网页埋点
  19. 用狼的处世哲学做SOHO(一)
  20. 02[自制油猴插件]我是如何优化B站评论区外链体验的

热门文章

  1. 根据黑马pink老师讲的bootstrap而做的笔记(不过多赘述,简洁高效)第二章 第三节 bootstrap的布局容器
  2. 特别好用,在线就能画原型的工具!
  3. P3041 [USACO12JAN]Video Game Combos【AC自动机+DP】
  4. C语言静态变量static的分析
  5. 修改elementui的表格的滚动条样式
  6. opencv支持H264视频编码
  7. 用Java设计实现多实例多库查询
  8. 防飞溅装置(挡泥板)emark认证详解
  9. nginx作为web服务应用
  10. android x86版本区分,Android X86 4.3(JB-x86)测试版本20130725发布