博客
关于我
熟悉HTTP&MQTT协议-实践练习
阅读量:535 次
发布时间:2019-03-09

本文共 2412 字,大约阅读时间需要 8 分钟。

熟悉HTTP协议及MQTT协议实践指南

HTTP协议简介

HTTP(超文本传输协议)是万维网上最常用的超文本传输协议。它是基于请求/响应模型的协议,定义了客户端与服务器之间的通信规则。以下是HTTP协议的核心特点:

  • 无连接:每次请求都建立独立的连接,处理完后立即断开。
  • 灵活:支持多种数据类型传输,内容类型由Content-Type标头确定。
  • 简单快速:协议设计简洁,服务器处理速度快。
  • 无状态:协议不记录客户端信息,提高了通信效率。
  • 客户/服务器模式:符合典型的C/S架构。
  • HTTP协议的基础结构包括请求头、请求体、状态行和响应体。其工作流程主要包括连接建立、请求发送、响应处理和连接关闭。

    HTTP协议实践

    1. 天气预报信息获取

    通过Java编程实现天气预报信息的获取。以下是代码实现:

    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 {        String question = URLEncoder.encode("山东天气", "UTF-8");        URL url = new URL("https://api.jisuapi.com/iqa/query?appkey=62958a3a6ef3c56d&question=" + question);        URLConnection conn = url.openConnection();        InputStream is = conn.getInputStream();        BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));        String text = br.readLine();        System.out.println(text);        br.close();    }}

    运行程序,可输入如“重庆天气”等关键词获取天气信息。

    2. 短信验证码发送

    实现指定手机号码接收验证码的功能。以下是代码实现:

    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 {        URL url = new URL("https://itdage.com/kkb/kkbsms?key=xzk&number=01010101010&code=zxw9420");        URLConnection conn = url.openConnection();        InputStream is = conn.getInputStream();        BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));        String text = br.readLine();        System.out.println(text);        br.close();    }}

    运行程序,可输入手机号码和验证码,完成短信验证码发送功能。

    MQTT协议简介

    MQTT(消息队列遥测传输)是一种轻量级的消息协议,广泛应用于物联网设备通信。其特点包括:

  • 发布/订阅模式:支持一对多的消息发布,减少应用耦合。
  • 消息质量控制:提供五种消息质量等级。
  • 资源效率:头部固定长度小,适合低带宽环境。
  • 可靠性机制:支持Last Will & Testament功能。
  • MQTT协议基于TCP/IP协议栈,主要用于设备间的通信,如机器间数据传输。

    MQTT服务器搭建

    1. 安装MQTT服务器

    使用Apache Apollo MQTT服务器进行搭建。解压并配置服务器环境,完成后可通过浏览器访问http://127.0.0.1:61680登录系统。

    2. 客户端配置

    下载并配置Paho MQTT客户端,输入服务器地址和认证信息,完成客户端连接。

    消息发布与订阅

    1. 消息订阅

    在客户端订阅指定主题,接收发布的消息内容。

    2. 消息发布

    向指定主题发布消息,确保其他订阅客户端能接收到。

    总结

    通过本文的实践指南,熟悉了HTTP协议的实现细节和MQTT协议的应用场景。HTTP协议简单易用,适合快速开发;MQTT协议轻量级高效,适合物联网设备通信。通过本文的步骤,读者可以完成天气预报信息获取、短信验证码发送等HTTP应用开发,并搭建并使用MQTT服务器完成消息通信。

    转载地址:http://drmiz.baihongyu.com/

    你可能感兴趣的文章
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>
    No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
    查看>>
    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
    查看>>
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
    查看>>
    No module named 'crispy_forms'等使用pycharm开发
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>
    No new migrations found. Your system is up-to-date.
    查看>>
    No qualifying bean of type XXX found for dependency XXX.
    查看>>
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用json节点解析JSON数据
    查看>>