APP与服务器之间通过 http(POST、GET)进行数据交互 ( 实现一个简单的物联网系统-1 )

文章目录

    • 一、APP POST 数据到服务器
    • 二、APP 从服务器 GET 数据
    • 三、APP 界面部分
    • 四、相关疑问
    • 五、学习方法
    • 六、专栏地址

一、APP POST 数据到服务器

  首先 post 的数据应该包括识别这个花卉的信息和我们想要浇水的量,这里我们识别花卉采用花卉的名字,这样后台程序通过花卉名来对应更新数据库中该花的浇水量。

  1. mFlower_name:花卉名
  2. mBulk : 浇水量

实现代码如下:
注意:

  1. String urlPath 中的 IP 地址是我局域网的地址,如果你的后台程序是在云服务器上运行的那么应改成云服务器的公网IP。不过可以先在局域网内实现嘛。
  2. http 的默认端口号为80,但由于我用的是springboot框架打包成的jar包,自带了嵌入的tomcat,而tomcat容器默认的端口号为8080(可以在配置文件(.yml)中更改)。
  3. 服务端的代码可参照专栏中的下一篇文章。
      Code:
/*-- 将浇水量等信息上传到服务器    安卓4.0以后必须在子线程中执行 --*/
new Thread() {@Overridepublic void run() {try {String urlPath = "http://192.168.43.148:8080/appPost";  	//URLURL url = new URL(urlPath);HttpURLConnection coon = (HttpURLConnection) url.openConnection();coon.setRequestMethod("POST");	//请求方式为POSTcoon.setConnectTimeout(5000);coon.setRequestProperty("Content-Type", "application/json");     //设置发送的数据为 json 类型,会被添加到http body当中String json = "{\"name\":\""+ mFlower_name+"\"," + "\"bulk\":" + "\"" +mBulk+ "\"}";    //将要发送的花卉数据字符串连接成json格式coon.setRequestProperty("Content-Length", String.valueOf(json.length()));//post请求把数据以流的方式写给服务器,指定请求的输出模式coon.setDoOutput(true);coon.getOutputStream().write(json.getBytes());int code = coon.getResponseCode();if (code == 200) {System.out.println("请求成功");} else {System.out.println("请求失败");}} catch (Exception e) {e.printStackTrace();System.out.println("请求失败");}}
}.start();

二、APP 从服务器 GET 数据

  APP 同样需要从服务器获得花卉的状态信息来更新显示界面,如更新到最新的土壤湿度、光照强度等显示给用户。
实现代码如下:
注意:

  1. 从服务器得到的数据为 list 形式,所以解析较复杂一些,这取决于你服务器返回什么样的数据,在下一篇文章会有说明。服务器直接返回 map 形式APP这边会更好解析。具体百度啦!
    Code:
new Thread() {@Overridepublic void run() {//查询服务器 得到花卉的信息  更新显示的数据try {String urlPath = "http://192.168.43.148:8080/appQuery?flower_name=" + mFlower_name;URL url = new URL(urlPath);HttpURLConnection coon = (HttpURLConnection) url.openConnection();coon.setRequestMethod("GET");coon.setConnectTimeout(5000);int code = coon.getResponseCode();if (code == 200) {//1.得到输入流InputStream is = coon.getInputStream();//2.将流用自己写的StreamUtils转化为字符串  改字符串为json格式String flowerInfo = StreamUtils.readStream(is);//3.解析json数据(这里是list形式)  并显示数据JSONArray flowerJsonArray = new JSONArray(flowerInfo);// 这里的数组长度其实是1for (int i = 0; i < flowerJsonArray.length(); i++) {JSONObject flowerJsonObject = flowerJsonArray.getJSONObject(i);mTv_temperature.setText(flowerJsonObject.getString("temperature"));//温度mTv_humidity.setText(flowerJsonObject.getString("humidity"));//湿度mTv_co2.setText(flowerJsonObject.getString("co2"));//CO2 浓度}} else {Message msg = Message.obtain();msg.what = STATUS_ERROR;mHandler.sendMessage(msg);}} catch (Exception e) {e.printStackTrace();}}
}.start();

三、APP 界面部分

  这部分就主要看自己如何去设计了,主要还是要多学习一些,才能做出更好看、功能更加丰富的APP。下面展示一下我做的APP(由于技术原因以及没有艺术细胞,做的着实有些丑)。

四、相关疑问

  1. 后台相关的代码呢?
    在下一节贴上我的服务端的代码,其实站在SpringBoot的肩膀上,我们后台的搭建显得异常的容易。
  2. APP 的其他代码和功能呢?
    这里我之列出了POST 和 GET 过程相关的代码,如果真的要实现众多功能,还是要花好长一段时间去学习安卓。

五、学习方法

  1. 我个人是通过学习完Java以后,在某宝花了几十块钱买的教学视频,还有哔哩哔哩上的天哥在奔跑的视频也还不错,等等。这里仅仅只是个人的学习过程,仅供参考。

六、专栏地址

  https://blog.csdn.net/CSDN_X_W/column/info/33567

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61382.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是物联网(Internet of Things)?

你可能在某些时候会听到物联网这个词&#xff0c;但是你对它可能不知所以然&#xff0c;这篇文章让你弄清楚什么是物联网&#xff0c;以及它代表什么&#xff1f; 物联网&#xff08;Internet of Things&#xff09;是指设备到互联网的连接。汽车&#xff0c;厨房电器&#xff…

物联网网关有哪些能力和哪些应用?

工业物联网的应用受到越来越多企业的关注&#xff0c;很多人都了解网关这个概念。网关就是一个网络连接到另一个网口的桥梁&#xff0c;起到协议解析、数据采集的作用&#xff0c;实现运行状态数据的高效利用。 物联网网关具备的能力 1、广泛连接的能力 目前各个行业、不同设…

一文了解物联网网关

物联网是指通过射频识别(RFID)、红外感应器、GPS、激光扫描器等信息传感设备&#xff0c;按约定的协议&#xff0c;实现任何时间、任何地点、任何物体进行信息交换和通信&#xff0c;以实现智能化识别、定位、监控和管理的一种网络。物联网是具有全面感知、可靠传输、智能处理特…

什么是物联网?有哪些应用?终于有人讲明白了

作者&#xff1a;佩里利&#xff08;Perry Lea&#xff09; 来源&#xff1a;大数据DT&#xff08;ID&#xff1a;hzdashuju&#xff09; 我们将从连接设备的角度来研究物联网&#xff0c;这些设备之前未必相互连接或接入互联网。它们可能一直没有太多的计算或通信能力。我们假…

LPWA物联网通信

物联网LPWA是物联网中的无线通信技术之一。 根据物联网无线通信技术的覆盖距离&#xff0c;大致可分为两类&#xff1a;一类是短距离通信技术&#xff0c;包括蓝牙(蓝牙)&#xff1b;NFC,Zigbee、WIFI、NFC&#xff0c;主要用于室内智能家庭、消费电子等场景&#xff1b;另一种…

物联网通讯协议:MQTT,NB-IOT,Zigbee,CoAP,RFID,BLUETOOTH,NFC,4G,HTTP

目录 一、按网络四层协议分类二、按需要网关来分类三、NB-IoT&#xff0c;4G对比四、应用层协议&#xff1a;MQTT和COAP对比物联网组网技术WIFI蓝牙ZigBee2G/4G/5GNB-IoTLoRa网关 物联网中常见的物联通信协议TCPUDPTCP和UDP比较HTTPMQTTCoAPLwM2M 一、按网络四层协议分类 NB-I…

chatgpt赋能python:如何使用Python拷贝微信聊天记录的图片?

如何使用Python拷贝微信聊天记录的图片&#xff1f; 微信聊天记录中的图片是我们很重要的一部分。它们记录了我们和我们的朋友、家人和同事之间的重要时刻和特殊瞬间。然而&#xff0c;有些时候我们需要把这些图片从微信聊天记录中拷贝出来&#xff0c;以便于备份和共享。本文…

《辉煌优配》科技股强势引领A股反弹 沪深两市日成交额再超万亿元

受美联储再度加息扰动&#xff0c;昨日早盘沪深两市指数低开&#xff0c;随后科技股强势拉升&#xff0c;带动商场回暖。到收盘&#xff0c;上证综指报3286.65点&#xff0c;上涨0.64%&#xff1b;深证成指报11605.29点&#xff0c;上涨0.94%&#xff1b;创业板指报2361.41点&a…

深度分析台积电的投资价值:伟大的公司,伟大的投资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 公司介绍 台积电&#xff08;TSM&#xff09;是一家在1987年成立于台湾的半导体公司&#xff0c;并在全球范围内率先实施了“商业晶圆厂”代工模式。该公司为部分或全部外包生产的半导体生产商提供晶圆代工服务。台积电的产…

汇正财经靠谱吗?沪深创再现调整

盘面回顾&#xff1a; 周三A股开盘时间段&#xff0c;人民币再现快速贬值&#xff0c;再加上5月PMI数据不及预期&#xff0c;空头情绪放大&#xff0c;沪深创再陷调整&#xff0c;截止收盘沪指跌0.61%&#xff0c;深成指跌0.7%&#xff0c;创业板指跌1.14%。全天唯独科创50能逆…

超级模型GPT-4发布!

本文来源 量子位 一觉醒来&#xff0c;万众期待的GPT-4&#xff0c;它来了&#xff01; OpenAI老板Sam Altman直接开门见山地介绍说&#xff1a; 这是我们迄今为止功能最强大的模型&#xff01; 有多强&#xff1f; 根据OpenAI官方的介绍&#xff0c;GPT-4是一个超大的多模态…

透过现象看本质 | GPT爆火的背后

前言&#xff1a; 近年来&#xff0c;GPT&#xff08;Generative Pre-trained Transformer&#xff09;作为一种革命性的语言模型&#xff0c;以其强大的文本生成能力和广泛的应用领域引发了全球范围内的热议。然而&#xff0c;GPT爆火的背后&#xff0c;是一个更加深刻的本质。…

2014年考研英语二作文PartB图表题

作文详细解析 题目 Write an essay based on the following chart, in which you should interpret the chart, and give your comments You should write about 150 words on the ANSWER SHEET.(15 points) 注意点 1.图表题在第一段描述图表信息时,一定要写清楚y轴变化…

【考研】2018-Part B 作文(英一)

前言 10月要开始冲刺英一作文&#xff0c;会陆续推出 2013 - 2022 英一 Part A 和 PartB 的优秀范文&#xff0c;并用红色字体标明应用模板&#xff0c;并列举重点单词和词组&#xff0c;以积累词汇。 一、2018 Part B &#xff08;一&#xff09;题目及解析 提示信息信息解析…

python代码打包成可执行文件(exe)

【前言】&#xff1a;我们在开发完一个小项目后&#xff0c;想要把项目发布出来给别人用。通常都会把代码打包成exe后再给别人&#xff0c;而不是让别人去安装运行环境再跑裸代码。本文就是介绍如何使用pyinstaller这个工具将python带包成可直接运行的exe。 ▍概述 在介绍pyi…

关于Vivado中Vitis Model Composer无法打开的解决办法

目录 一、问题1、问题描述2、WINR键 在命令窗口中操作 二、解决办法 一、问题 1、问题描述 安装好官方提供的vivado 2021.1及其他扩展内容之后&#xff0c;双击无法打开Vitis Model Composer&#xff0c;只有命令窗口一闪而过&#xff1b; 2、WINR键 在命令窗口中操作 按如图…

jupyter闪退的解决方法以及卸载与安装教程

问题&#xff1a; 今天打开电脑准备使用jupyter&#xff0c;双击后指令窗口打开后闪退&#xff0c;无法正常使用软件&#xff0c;报错&#xff1a; C:\Users\***>jupyter notebook --generate-config Traceback (most recent call last): File "D:\LeStoreDownload\…

chatgpt赋能python:Python如何用快捷键运行程序?

Python如何用快捷键运行程序&#xff1f; Python是一门广泛使用的编程语言&#xff0c;开发者用它设计各种类型的程序和应用。在Python编程中&#xff0c;开发者需要经常运行程序来查看程序的输出结果。使用快捷键可以提高我们编写代码的效率和方便程度。那么&#xff0c;Pyth…

chatgpt赋能python:为什么我的Python程序经常闪退?详解Python闪退的原因及解决方案

为什么我的Python程序经常闪退&#xff1f;详解Python闪退的原因及解决方案 Python作为一门高级编程语言&#xff0c;在过去的十年中已经成为了众多开发者的首选语言。但是&#xff0c;即使是有10年Python编程经验的开发者&#xff0c;有时候也会遇到闪退的问题。这种问题很头…

chatgpt赋能python:Python运行为什么会闪退?可能的原因和解决方法

Python运行为什么会闪退&#xff1f;可能的原因和解决方法 如果你是一名有10年Python编程经验的工程师&#xff0c;你一定遇到过这种情况&#xff1a;当你想运行一个 Python 脚本或程序时&#xff0c;它会闪退&#xff0c;无法正常运行。这种情况有很多可能的原因&#xff0c;…