HTTP和MQTT协议实践

实验任务如下:

一. 安装Java开发环境和Java IDE编程工具 Eclipse 或 IDEA,基于HTTP协议(严格地说是 “REST接口规范”)读取互联网上web服务网站实现:
1)读取指定城市的天气预报信息;
2)给指定手机号码发送验证码;
二. 学习和熟悉MQTT 协议
1)在本机上安装MQTT服务器和客户端软件,练习消息发布与订阅,比如自定义一个天气预报的消息主题。
2)利用网上提供的MQTT服务,编写MQTT客户端程序(python、java或c

这里写目录标题

  • 一.HTTP实验
    • 1.实验准备
      • 2.注册账号
        • 3.Eclipse使用和代码
  • 二.MQTT 实验
    • 1.MQTT
      • 2.获取城市的天气预报信息
  • 三.参考资料

一.HTTP实验

1.实验准备

eclipse的下载安装

eclipse下载
记住选择点击箭头所示处下载
HTTP和MQTT协议实践_第1张图片

HTTP和MQTT协议实践_第2张图片
此处注意,下载的时候尽量选择中国的镜像源(下载速度会快一下,不然慢的顶不住)
HTTP和MQTT协议实践_第3张图片
然后解压使用就可以,常规步骤此处就不一一展示了。

2.注册账号

在网建 SMS上注册账号, 网站点此处

HTTP和MQTT协议实践_第4张图片
(1)信息修改
如图点击此处进行信息修改
HTTP和MQTT协议实践_第5张图片
(2)资料下载
点击短信API接口
HTTP和MQTT协议实践_第6张图片
往下滑动,下载示例代码
HTTP和MQTT协议实践_第7张图片
点击修改短信密钥,保存密钥(代码块需要使用自己的密钥)
HTTP和MQTT协议实践_第8张图片

3.Eclipse使用和代码

(1)新建
HTTP和MQTT协议实践_第9张图片
(2)导入
点击src->点击导入
HTTP和MQTT协议实践_第10张图片
选择文件系统(我这里是汉化过了)
HTTP和MQTT协议实践_第11张图片

从在之前网站下的代码里选择第一个msgProGBK文件夹
HTTP和MQTT协议实践_第12张图片
(3)代码
HTTP和MQTT协议实践_第13张图片
(4)运行
HTTP和MQTT协议实践_第14张图片

二.MQTT 实验

1.MQTT

(1)基础介绍
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。
(2)MQTT特点

MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;

2、对负载内容屏蔽的消息传输;

3、使用 TCP/IP 提供网络连接;

4、有三种消息发布服务质量:

“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。

“至少一次”,确保消息到达,但消息重复可能会发生。

“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;

6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制

2.获取城市的天气预报信息

代码

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;
import java.util.Scanner;

public class Getweather {
	public static void main(String args[]) throws Exception 
	{
		String wea="";
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入要查询天气的城市:");
		wea=reader.next();
		String weather=URLEncoder.encode(wea+"天气","UTF-8");
		//1. 	先准备一个URL类的对象 ur1
		URL url = new URL("https://api.jisuapi.com/iqa/query?appkey=62958a3a6ef3c56d&question="+weather);
		//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();
	}
}

实现查询任意城市天气
HTTP和MQTT协议实践_第15张图片

三.参考资料

Eclipse下载与安装

你可能感兴趣的:(http,mqtt,java)