一、认识网址
网址的组成:协议://域名:端口号/虚拟路径?参数列表#锚点
协议: 用于计算机与计算机之间交流的协议,用于传输速率,传输编码,出错的控制等。
常用协议:
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 java.net.URL;
import java.net.URLConnection;
public class tianqi_1 {
public static void main(String args[]) throws IOException
{
URL url = new URL("https://api.jisuapi.com/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 java.net.URL;
import java.net.URLConnection;
public class tianqi_1 {
public static void main(String args[]) throws IOException
{
URL url = new URL("https://itdage.com/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进行调用实现的。
四、实现自定义短信内容的短信验证码发送
想实现此功能需要申请短信服务。 可以使用阿里云提供的短信服务,但是要通过短信签名请求的审核才行,否则就无法实现该服务的使用。
也可以使用下面这个工具
链接:http://www.smschinese.cn/api.shtml
- 注册一个账号
- 登录
- 相关代码
①下载相关的jar包,并导入到工程中
jar下载地址:
http://www.smschinese.cn/down/commons-codec-1.4.jar
http://www.smschinese.cn/down/commons-httpclient-3.1.jar
http://www.smschinese.cn/down/commons-logging-1.1.1.jar
②创建一个类(包含main函数)
③添加代码
import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.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.api.smschinese.cn");
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版本的方法:
https://blog.youkuaiyun.com/zeal9s/article/details/85090545
如果还有其他问题,额,加油,自己应该能找办法解决🐱🏍🐱🏍。