第17周实验一HTTP和MQTT协议实践

第17周实验一HTTP和MQTT协议实践

实验目的

实验任务如下:

一. 安装Java开发环境和Java IDE编程工具 Eclipse 或 IDEA,基于HTTP协议(严格地说是 “REST接口规范”)读取互联网上web服务网站实现:

1)读取指定城市的天气预报信息;2)给指定手机号码发送验证码;

提示:参考课堂上给的培训视频和课件资料。

二. 学习和熟悉MQTT 协议

1)在本机上安装MQTT服务器和客户端软件,练习消息发布与订阅,比如自定义一个天气预报的消息主题。

 提示:可以利用课堂教学资料或网上资源。

2)利用网上提供的MQTT服务,编写MQTT客户端程序(python、java或c#、c/c++, 任意一种编程语言),自定义一个天气预报主题,完成订阅与发布。思考MQTT与前面REST协议的区别。

可利用的免费在线MQTT网站: https://www.emqx.io/cn/mqtt/public-mqtt5-broker

发送验证码

我使用的是SMS短信通的接口
所以只需在注册账号后稍微修改官方代码即可:

import java.util.HashMap;
import java.util.Map;

/**  
 * @Title: http://www.smschinese.cn/api.shtml
 * @date 2011-3-22
 * @version V1.2  
 */
public class test {
	

	private static String Uid = "VIANGL";
	

	private static String Key = "d41d8cd98f00b204e980";
	
	private static String smsMob = "18084006140";
	

	private static String smsText = "作业已经完成,田原631807060620";
	
	public static void main(String[] args) {
		
		HttpClientUtil client = HttpClientUtil.getInstance();
		
		int resultGbk = client.sendMsgGbk(Uid, Key, smsText, smsMob );
		if(resultGbk>0){
			System.out.println("GBK�ɹ���������=="+resultGbk);
		}else{
			System.out.println(client.getErrorMsg(resultGbk));
		}
	}
}

天气预报

天气预报我使用的是百度地图的接口:

                sbf.append(strRead);
                sbf.append("\r\n");
            }
            reader.close();
            result = sbf.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
    //将返回的中文字符的编码(乱码)处理一下,转换成正确的中文
    public static String unicode2String(String str){
        int indexU=0;
        StringBuffer result=new StringBuffer();
        char t;
        indexU=str.indexOf("\\u");
        while(indexU>=0){
            result.append(str.substring(0,indexU));
            t=(char)Integer.parseInt(str.substring(indexU+2,indexU+6),16);
            result.append(t);
            str=str.substring(indexU+6);
            indexU=str.indexOf("\\u");
        }
        return result.toString();
    }

	public static void main(String[] args) {
		
		String httpUrl = "http://apis.baidu.com/apistore/weatherservice/citylist";
        String httpArg = "cityname=%E6%9C%9D%E9%98%B3";
        String jsonResult = request(httpUrl, httpArg);
        System.out.println(unicode2String(jsonResult));
 
		
		
                                           }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值