1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 基于Java--获取城市天气与给手机发送验证码--HTTP协议实践

基于Java--获取城市天气与给手机发送验证码--HTTP协议实践

时间:2021-04-25 03:42:56

相关推荐

基于Java--获取城市天气与给手机发送验证码--HTTP协议实践

目录

一、认识网址二、获取城市的天气预报信息三、给指定手机号码发送验证码四、实现自定义短信内容的短信验证码发送参考

一、认识网址

网址的组成:协议://域名:端口号/虚拟路径?参数列表#锚点

协议: 用于计算机与计算机之间交流的协议,用于传输速率,传输编码,出错的控制等。

常用协议:

http:超文本传输协议,默认端口号:80

https:安全超文本传输协议,默认端口号:443

域名:ip地址的别名。ip地址是计算机在互联网中的唯一表示,192.168.1.1

端口号:范围:0-65535,其中0~1023有特殊含义。

虚拟路径:通过路径的方式,来管理服务器中的文件资源。

参数列表:向服务器发送的数据,每一个参数都是一个键值对,键和值之间通过=号连接,多个键值对之间通过&分割。

二、获取城市的天气预报信息

package tianqi;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import .URL;import .URLConnection;public class tianqi_1 {public static void main(String args[]) throws IOException{URL url = new URL("/iqa/query?appkey=62958a3a6ef3c56d&question=重庆天气");URLConnection conn = url.openConnection();InputStream is = conn.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String text = br.readLine();System.out.println(text);br.close();}}

效果图

这个代码呢。只是能获取指定城市的天气,不能任意获取。

三、给指定手机号码发送验证码

同样新建Java工程,在包内新建class,写入代码

package tianqi;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import .URL;import .URLConnection;public class tianqi_1 {public static void main(String args[]) throws IOException{URL url = new URL("/kkb/kkbsms?key=xzk&number=15086842152&code=520520");URLConnection conn = url.openConnection();InputStream is = conn.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String text = br.readLine();System.out.println(text);br.close();}}

效果如图,指定手机号,即number=后面的号码会收到短信

短信收到的消息图:

该方式是利用已经建好的API进行调用实现的。

四、实现自定义短信内容的短信验证码发送

想实现此功能需要申请短信服务。 可以使用阿里云提供的短信服务,但是要通过短信签名请求的审核才行,否则就无法实现该服务的使用。

也可以使用下面这个工具

链接:/api.shtml

注册一个账号

登录

相关代码

①下载相关的jar包,并导入到工程中

jar下载地址:

/down/commons-codec-1.4.jar

/down/commons-httpclient-3.1.jar

/down/commons-logging-1.1.1.jar

②创建一个类(包含main函数)

③添加代码

import java.io.UnsupportedEncodingException;import mons.httpclient.Header;import mons.httpclient.HttpClient;import mons.httpclient.NameValuePair;import mons.httpclient.methods.PostMethod;public class SendMsg_webchinese {public static void main(String[] args)throws Exception{HttpClient client = new HttpClient();PostMethod post = new PostMethod("http://gbk.");post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码NameValuePair[] data ={new NameValuePair("Uid", "本站用户名"),//Uid指的是注册时的用户名new NameValuePair("Key", "接口安全秘钥"),new NameValuePair("smsMob","手机号码"),//发送短信的目的手机号new NameValuePair("smsText","验证码:8888")};//对应短信内容post.setRequestBody(data);client.executeMethod(post);Header[] headers = post.getResponseHeaders();int statusCode = post.getStatusCode();System.out.println("statusCode:"+statusCode);for(Header h : headers){System.out.println(h.toString());}String result = new String(post.getResponseBodyAsString().getBytes("gbk"));System.out.println(result); //打印返回消息状态post.releaseConnection();}}

接口安全密钥的查看(默认一般相同)

如果后面遇到一些错误,可能是跟jdk版本有问题

下面这是修改jdk版本的方法:

/zeal9s/article/details/85090545

如果还有其他问题,额,加油,自己应该能找办法解决🐱‍🏍🐱‍🏍。

参考

/zhukaixin/p/9149005.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。