短信服务(Short Message Service)是网易网易云通信为用户提供的一种通信服务的能力,目前支持验证码类短信、通知类短信、运营类短信、语音类短信、国际短信等事务性短信。网易网易云通信短信功能具体有全网覆盖、3-5 秒可达、超高到达率、7*24 小时服务监控等优势。按量付费、阶梯定价,发送越多单价越低。API调用简单,加快接入速度。

我们这里主要介绍使用OkHttp和Retrofit来做一些请求,就不做介绍了,直接使用代码来注释。

OkHttp

private final static String vercodeserverurl = "https://api.netease.im/sms/sendcode.action";
private final static String vercodeappkey = "5970a1e************46ae";
private final static String vercodeappsecret = "5*****4";
private final static String vercodetemplateid = "30******7"; public static void main(String[] args) throws IOException {
String nonce = ((int) (Math.random() * 100000)) + "";
String curTime = String.valueOf(System.currentTimeMillis() / 1000L);
String checkSum = CheckSumBuilder.getCheckSum(vercodeappsecret, nonce, curTime); FormBody.Builder builder = new FormBody.Builder();
builder.add("mobile", "155********");
RequestBody formBody = builder.build(); OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder()
.url(vercodeserverurl)
.addHeader("AppKey",vercodeappkey)
.addHeader("Nonce",nonce)
.addHeader("CurTime",curTime)
.addHeader("CheckSum",checkSum)
.post(formBody)
.build();
okhttp3.Response execute = client.newCall(request).execute();
ResponseBody body = execute.body();
System.out.println(body.string());
System.out.println("完成");

Retrofit

接口声明

public interface WebInterface {

    @FormUrlEncoded
@POST("sms/sendcode.action")
Call<MessageResponse> sendMessage(@Header("AppKey") String apiKey,
@Header("Nonce") String Nonce,
@Header("CurTime") String CurTime,
@Header("CheckSum") String CheckSum,
@Field("mobile") String mobile);
}

返回实体封装

public class MessageResponse {

    private int code;
private String msg;
private String obj; //省略全参构造 @Override
public String toString() {
return "MessageResponse{" +
"code=" + code +
", msg='" + msg + '\'' +
", obj='" + obj + '\'' +
'}';
}
}

Retrofit调用接口

public class SendMessage {

    private final static String vercodeserverurl="https://api.netease.im/";
private final static String vercodeappkey="5970a1*************46ae";
private final static String vercodeappsecret="5***********4";
private final static String vercodetemplateid="3******7";
private final static String content="application/x-www-form-urlencoded;charset=utf-8"; public static void main(String[] args) throws IOException {
String nonce = ((int) Math.random() * 100000) + "";
String curTime = String.valueOf(System.currentTimeMillis() / 1000L);
String checkSum = CheckSumBuilder.getCheckSum(vercodeappsecret, nonce, curTime); Retrofit retrofit = new Retrofit.Builder()
.baseUrl(vercodeserverurl) //设置网络请求的Url地址
.addConverterFactory(GsonConverterFactory.create()) //设置数据解析器
.build(); WebInterface webInterface = retrofit.create(WebInterface.class);
Call<MessageResponse> messageResponseCall = webInterface.sendMessage(vercodeappkey,
nonce,
curTime,
checkSum,
//content,
"155*********");
//同步执行
Response<MessageResponse> execute = messageResponseCall.execute();
MessageResponse messageResponse= execute.body();
//判断是否成功等代码省略
}
}

使用OkHttp和Retrofit发送网易云信验证码的更多相关文章

  1. 网易云信,发送验证码短信C#版代码

    网易云信发送短信代码(C# 版)....需要注意SHA1 String有转换小写!!!! using System; using System.Collections.Generic; using S ...

  2. php对接网易云信视频直播

    <?php/** * Created by PhpStorm. * User: lhl * Date: 2019/4/10 * Time: 17:31 */ namespace app\api\ ...

  3. 模板短信接口调用java,pythoy版(一) 网易云信

    说明 短信服务平台有很多,我只是个人需求,首次使用,算是测试用的,故选个网易(大公司). 稳定性:我只测试了15条短信... 不过前3条短信5分钟左右的延时,后面就比较快.... 我只是需要发短信,等 ...

  4. 子弹短信光鲜的背后:网易云信首席架构师分享亿级IM平台的技术实践

    本文原文内容来自InfoQ的技术分享,本次有修订.勘误和加工,感谢原作者的分享. 1.前言 自从2018年8月20日子弹短信在锤子发布会露面之后(详见<老罗最新发布了“子弹短信”这款IM,主打熟 ...

  5. 微信小程序开发中的二三事之网易云信IMSDK DEMO

    本文由作者邹永胜授权网易云社区发布. 简介 为了更好的展示我们即时通讯SDK强悍的能力,网易云信IM SDK微信小程序DEMO的开发就提上了日程.用产品的话说就是: 云信 IM 小程序 SDK 的能力 ...

  6. 网易云信技术分享:IM中的万人群聊技术方案实践总结

    本文来自网易云信团队的技术分享,原创发表于网易云信公众号,原文链接:mp.weixin.qq.com/s/LT2dASI7QVpcOVxDAsMeVg,收录时有改动. 1.引言 在不了解IM技术的人眼 ...

  7. 网易云信-新增自定义消息(iOS版)

    https://www.jianshu.com/p/2bfb1c4e9f21 前言 公司业务需要,PC端,移动端都用到了第三方 网易云信 IM来实现在线客服咨询.在这当中难免遇到一些需求是网易云信没有 ...

  8. 网易云信 QUIC 加速服务架构与实践

    导语:网易云信作为音视频服务提供商的领导者,一直致力于提供顶级的音视频通话服务体验,为用户在各种恶劣环境下提供可靠的音视频服务.如何在极端弱网条件下仍然能给用户提供可靠的音视频服务,是网易云信关注的重 ...

  9. 用Retrofit发送请求中添加身份验证

    用Retrofit发送请求中添加身份验证====================在安卓应用开发中, retrofit可以极大的方便发送http网络请求,不管是GET, POST, 还是PUT, DEL ...

随机推荐

  1. [Swift]LeetCode517. 超级洗衣机 | Super Washing Machines

    You have n super washing machines on a line. Initially, each washing machine has some dresses or is ...

  2. python之Django学习笔记(二)---Django从工程创建、app创建到表建模在页面的显示

    创建工程: 在命令行中切换目录至需要创建工程的目录,然后在命令行中输入如下命令创建djangoTestPro工程 D:\PycharmProjects\untitled\MyTestProject&g ...

  3. 如何写好CSS系列之表单(form)

    表单模块可以分为两部分:一是表单的布局,也就是规范表单元素单元的排列位置:二是表单元素,如:输入框.单选.复选.列表组件.搜索组件等,由于列表组件.搜索组件不是单纯的css组件,所以暂且没有实现. 一 ...

  4. 如何写好css系列之button

    现代前端行业的发展,如果你在css的时候,还没有利用一些预编译工具,是否觉得自己太low了.但你是否考虑过搭建一套自己前端框架.可能你会想这是否有必要,因为基础有boostrap,组件库有:easyu ...

  5. Android Studio代码行数统计插件Statistics

    Android Studio 是没有提提供统计代码全部行数的功能的,但是对于开发者来说,这个功能确实必备的,Statistic统计代码行数非常方便,也很详细. 1,首先肯定是将插件下载下来,下载地址: ...

  6. node 调试相关

    #0 node 正确的书写方式 为了防止后面出现混乱的各种书写,先来了解一下如何正确书写 node 的名称. 下面使用来自@bitandbang 推文中的图片展示如何正确书写 node 名称. nod ...

  7. centos7 修改yum源为阿里源

    centos7 修改yum源为阿里源,某下网络下速度比较快 首先是到yum源设置文件夹里 安装base reop源 cd /etc/yum.repos.d 接着备份旧的配置文件 sudo mv Cen ...

  8. 【Java基础】【21IO(字符流)&字符流其他内容&递归】

    21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写 ...

  9. github访问很慢解决方案

    首先要解决的就是这个访问速度的问题: 获取Github相关网站的ip 访问https://www.ipaddress.com,拉下来,找到页面中下方的“IP Address Tools – Quick ...

  10. Docker系列04—Docker的网络模式详解

    本文收录在容器技术学习系列文章总目录 1.Docker的四种网络模式 (1)docker四种网络模式如下: Bridge contauner   桥接式网络模式 Host(open) containe ...