本文共 5427 字,大约阅读时间需要 18 分钟。
一. 安装Java开发环境和Java IDE编程工具 Eclipse 或 IDEA,基于HTTP协议(严格地说是 “REST接口规范”)读取互联网上web服务网站实现:
1)读取指定城市的天气预报信息; 2)给指定手机号码发送验证码; 二. 学习和熟悉MQTT 协议 1)在本机上安装MQTT服务器和客户端软件,练习消息发布与订阅。 2)利用网上提供的MQTT服务,编写MQTT客户端程序(python、java或c#、c/c++, 任意一种编程语言),自定义一个主题,完成订阅与发布。
超文本传输协议
超文本传输协议(HTTP)是用于从万维网服务器传输超文本到本地浏览器的传送协议。超文本传输协议(HTTP)是面向事务的(Transaction-oriented),应用层协议规定了在浏览器和服务器之间的请求和响应的格式和规则,它是万维网上能够可靠交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。安装Java开发环境和Java IDE编程工具 Eclipse 或 IDEA,基于HTTP协议(严格地说是 “REST接口规范”)读取互联网上web服务网站实现
由于之前已经安装过了相关的开发软件,这里就不细说其安装了,大家看可以找“度娘”,进行安装操作。
代码实现
package com.kkb.demo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder;public class Demo4 { public static void main(String[] args) throws IOException { //关键使用步骤: //0. 将发送给图灵机器人的文字转化为URL编码 String question = URLEncoder.encode("山东天气", "UTF-8"); //1. 先准备一个URL类的对象 u URL url = new URL("https://api.jisuapi.com/iqa/query?appkey=62958a3a6ef3c56d&question="+question); //2. 打开服务器连接,得到连接对象 conn URLConnection conn = url.openConnection(); //3. 获取加载数据的字节输入流 is InputStream is = conn.getInputStream(); //4. 将is装饰为能一次读取一行的字符输入流 br BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8")); //5. 加载一行数据 String text = br.readLine(); //6. 显示 System.out.println(text); //7. 释放资源 br.close(); }}
运行程序
String question = URLEncoder.encode("输入查询地名+天气", "UTF-8");
处,可以查询到天气。例如:“重庆天气”、“山东天气”等等。 代码实现(为避免号码泄露,这里号码用01表示)
package com.kkb.demo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder;public class Demo5 { public static void main(String[] args) throws IOException { //关键使用步骤: //1. 先准备一个URL类的对象 u URL url = new URL("https://itdage.com/kkb/kkbsms?key=xzk&number=01010101010&code=zxw9420"); //2. 打开服务器连接,得到连接对象 conn URLConnection conn = url.openConnection(); //3. 获取加载数据的字节输入流 is InputStream is = conn.getInputStream(); //4. 将is装饰为能一次读取一行的字符输入流 br BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8")); //5. 加载一行数据 String text = br.readLine(); //6. 显示 System.out.println(text); //7. 释放资源 br.close(); }}
运行程序
URL url = new URL("https://itdage.com/kkb/kkbsms?key=xzk&number=***********&code=******");
在第一处“*”输入指定的手机号码;在第二处“ * ”输入所需要发送的验证码; 至此,使用HTTP协议读取指定城市的天气预报以及给指定手机发送验证码的实践就完成了。 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合; 2、对负载内容屏蔽的消息传输; 3、使用 TCP/IP 提供网络连接; 4、有三种消息发布服务质量: 5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量; 6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;
基本特点
MQTT是一种发布/订阅传输协议,基本原理和实现如下下载Apache Apoll
. 解压下载后的文件到当前文件夹C:\Program Files\Java\jdk-12.0.1
PATH %JAVA_HOME%\bin\
电脑桌面,找到控制面板
高级系统设置
,弹出界面如下 高级
,点击环境变量
; Java_home
环境变量 在系统变量中找,或者新建 编辑系统变量
;点击新建 输入C:\Program Files\Java\jdk-12.0.1 PATH %JAVA_HOME%\bin\
cmd
; java -version
cmd运行apollo.cmd create mybroker
; apollo.cmd
,出现如示图像,则配置成功 apollo.cmd create mybroker
mybroker/etc/apollo.xml
,用户名和密码在mybroker/etc/users.properties
。默认的用户名:admin
密码:password
.\apollo-broker-service install,.\apollo-broker-service start
apollo
,并启动该服务 Username=admin;Password=password
;输入即可登录 至此,MQTT的服务器就搭配完成了。 下载客户端
. 解压 解压到当前文件夹消息订阅
HTTP协议是万维网常用的超文本传输协议,所以在使用的时候比较轻松。对于MQTT协议,在环境配置的时候出了点问题,百度了很久才解决的,然后在搭配服务器时,由于路径出现中文,导致cmd命令无法识别,系统找不到指定路径,更改路径后就可以了。但是在搭配客户端环境的时候,也出现了问题。最后参考了大佬的博客,然后就可以了。虽然问题多,花费了较长时间,但是完成后还是挺开心的。最后,希望这篇文章对你有所帮助。
.
. . . . . . .转载地址:http://drmiz.baihongyu.com/