项目实战:Java实现短信发送(API)
程序员文章站
2022-04-19 11:21:12
...
项目实战:Java实现短信发送
拓展:与智能机器人对话
一、项目之前所需知识(重要)
二、项目需求
完成手机短信的发送
- 需求描述:通过java程序,向任意的手机号发送验证码短信。
三、项目完成思路
- 通过URL类打开网络连接
- 通过连接对象得到输入流
此时URL类中的网址就是发送短信的API,可以用事先编写好的模板通过这个API发短信。
- 项目所需API:短信API服务器地址: https://api.jisuapi.com/sms/send(使用方法,拼接参数)
四、代码
- new一个URL类获取url对象,再打开网络连接,得到输入流,就能实现短信发送。
new URL("https://api.jisuapi.com/sms/send?appkey=[XXXXXXX]&mobile=[手机号]&content=[短信内容]")//短信API .openConnection() .getInputStream();
- 由于发送的短信内容可能出现乱码,所以需要将其格式化为UTF-8编码。
//格式化传送的URL网址
String para = URLEncoder.encode("恭喜你,作业已完成!验证码是:朵朵。如非本人操作,请忽略本短信!【开课吧新职课】","UTF-8");
五、项目效果图
拓展:智能机器人
-
通过图灵机器人API,实现对话。
-
代码:
//格式化输入内容 String para = URLEncoder.encode("现在时间","UTF-8"); // 1. 创建一个URL类的对象url URL url = new URL("https://api.jisuapi.com/iqa/query?appkey=62958a3a6ef3c56d&question="+para); // 2. 通过URL类的对象url打开网络连接,并得到连接对象conn URLConnection conn = url.openConnection(); // 3. 通过连接对象,得到用于读取网页内容的输入流is InputStream is = conn.getInputStream(); // 4. 将上述的字节流is装饰为字符流,将字符流再装饰为一次能读取一行的字符流br BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8")); // 5. 通过字符流br,读取一行内容,并将内容存储到变量text中 String text = br.readLine(); // 6. 将读取到的内容text输出显示到控制台 System.out.println(text);
-
效果
总结
学会使用URL类获取网络连接,对掌握API的正确使用方式有很大帮助。