Android 网络通信(三)OkHttp实现登入
学习笔记
目录
一. 先写XML布局
二、创建 LoginResponse 类 :封装响应数据
目的和作用:
三、创建 MyOkHttp 类 :发送异步请求
代码分析
可能改进的地方
总结
四、LoginActivity 类中实现登录功能
详细分析与注释:
总结:
改进建议:
零、响应数据样例
通过 Post 登入请求
对API不做过多的细节描述。仅供代码理解
{"code": 200,"msg": "接口调用成功","data": 1
}
一、先写XML布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"xmlns:android="http://schemas.android.com/apk/res/android"><EditTextandroid:id="@+id/ed_username_login"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入账号"/><EditTextandroid:id="@+id/ed_password_login"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入账号"/><Buttonandroid:id="@+id/btn_dengru_login"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="登入"/>
</LinearLayout>
二、创建 LoginResponse 类 :封装响应数据
写一个 LoginResponse 类,目的是:用来封装从服务器返回的响应数据,通常用于解析 API 响应的 JSON 数据。它包含两个成员变量 code 和 msg,分别用于存储响应的状态码和消息。这个类在代码中被用于存储和处理登录请求的返回结果。
public class LoginResponse{private int code;private String msg;public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}
}
目的和作用:
-
封装响应数据:
PostDemo类提供了getCode()和getMsg()方法来访问服务器返回的状态码和消息。这些字段通常在 API 响应中用于指示请求的结果(例如,code可能表示成功或错误状态,msg可能包含描述或错误信息)。 -
与 JSON 映射:
在登录请求中,使用 Gson 将响应的 JSON 字符串解析为PostDemo对象。比如,如果服务器返回的数据是{ "code": 200, "msg": "Login success" },Gson 会将其映射到PostDemo类的code和msg字段中。 -
简化处理:
通过PostDemo类,可以方便地在业务逻辑中处理 API 返回的状态信息,进而决定后续的操作,如登录成功或失败。
总结来说,PostDemo 类的目的是为了将服务器响应的 JSON 数据结构映射为 Java 对象,便于后续的处理和使用。
三、创建 MyOkHttp 类 :发送异步请求
再写一个 MyOkHttp 类,目的是:使用了 OkHttp 库来发送异步 HTTP POST 请求,执行一个登录操作。请求发送到指定的 URL,传递用户名和密码,返回响应后进行处理。代码主要结构包括请求的构建、发起、回调以及数据的解析等内容。ps.已备注详细注解
public class MyOkHttp {// 定义登录请求的 URL 地址private static final String Login_URL = "your_API"; // API地址// 发送登录请求的公共方法public static void loginRequest(String username, String password, Context context, NetworkCallback_login c相关文章:
Android 网络通信(三)OkHttp实现登入
学习笔记 目录 一. 先写XML布局 二、创建 LoginResponse 类 :封装响应数据 目的和作用: 三、创建 MyOkHttp 类 :发送异步请求 代码分析 可能改进的地方 总结 四、LoginActivity 类中实现登录功能 详细分析与注释: 总结: 改进建议: 零、响应数据样例 通过 P…...
分享一下arr的意义(c基础)(必看)(牢记)
arr 即数组名 一般指数组首元素地址 在两种情况下不是 1:sizeof(arr) arr指整个数组简单讲解一下strlen与sizeof(c基础)_strzeof在c语言中什么意思-CSDN博客 2:printf("%p",&…...
AGENT AI 综述核心速览
研究背景 研究问题:这篇文章探讨了多模态人工智能(Agent AI)系统在理解和响应视觉和语言输入方面的潜力,特别是在物理和虚拟环境中的应用。Agent AI旨在通过感知和行动来增强人工智能系统的交互性和适应性。研究难点:…...
基于Java Springboot房屋租赁系统
一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…...
力扣 LeetCode 701. 二叉搜索树中的插入操作(Day10:二叉树)
解题思路: 全部插入到叶子节点即可 class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {if (root null) {TreeNode node new TreeNode(val);return node;}if (root.val < val) {root.right insertIntoBST(root.right, val);}if (root…...
猎板科技:PCB 特殊定制领域的卓越引领者
一、专业团队,创新设计之源 猎板科技的核心竞争力首先源于其卓越的专业团队。这支队伍汇聚了经验丰富的资深工程师以及行业前沿的技术专家,他们在 PCB 设计领域拥有深厚的造诣和敏锐的洞察力。无论是面对常规 PCB 设计任务,还是应对极具挑战…...
centos stream 9安装docker教程
第一步:安装该dnf-plugins-core软件包(它提供了管理 DNF 存储库的命令) sudo dnf -y install dnf-plugins-core 第二步:设置存储库(这里使用的是阿里云的镜像源) sudo dnf config-manager --add-repo https://mirrors.aliyun.c…...
优化旧LabVIEW程序功能的方法
优化运行已久的LabVIEW程序时,需在不影响原有功能的基础上针对目标功能进行改进。以下结合一个数据采集功能优化的实例,详细说明操作步骤和注意事项,为工程师提供切实可行的方法。 优化背景 某企业的LabVIEW程序负责多通道数据采集…...
关于安卓模拟器或手机设置了BurpSuite代理和安装证书后仍然抓取不到APP数据包的解决办法
免责申明 本文仅是用于学习研究安卓系统设置代理后抓取不到App数据包实验,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《中华人民共和国网络安全法》【学法时习之丨网络安全在身边一…...
【电路笔记】-布尔逻辑AND函数
逻辑AND函数 文章目录 逻辑AND函数1、概述2、逻辑 AND 函数 仅当所有输入均为 true 时,逻辑与函数输出才为 true,否则输出为 false。 1、概述 布尔代数基于逻辑函数,其中每个布尔函数(例如逻辑 AND 函数)通常具有一个…...
C#(11) 运算符重载
前言 我们知道函数是可以重载的,重载后的作用是干嘛呢?其实就是为了方便适应不同的参数传递。 那运算符我们也可以理解是一个函数,只是我们希望为更多的参数引入运算符使得他们可以被计算。 c#设计这么一块功能,其实也是为了方…...
Linux下Intel编译器oneAPI安装和链接MKL库编译
参考: https://blog.csdn.net/qq_44263574/article/details/123582481 官网下载: https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html?packagesoneapi-toolkit&oneapi-toolkit-oslinux&oneapi-linoffline 填写邮件和国家,…...
【通俗理解】ELBO(证据下界)——机器学习中的“情感纽带”
【通俗理解】ELBO(证据下界)——机器学习中的“情感纽带” 关键词提炼 #ELBO #证据下界 #变分推断 #机器学习 #潜变量模型 #KL散度 #期望 #对数似然 第一节:ELBO的类比与核心概念【尽可能通俗】 ELBO,即证据下界,在…...
php 使用mqtt
在 Webman 框架中使用 MQTT 进行消息的发布和订阅,你可以借助 PHP 的 MQTT 客户端库,比如 phpMQTT。以下是一个简单的示例,展示了如何在 Webman 中使用 MQTT 发布和订阅消息。 安装 phpMQTT 首先,你需要通过 Composer 安装 phpMQ…...
STM32学习笔记-----什么是同步/异步/全双工/半双工/单工?
在通信系统中,同步、异步、全双工、半双工和单工是描述数据传输方式的重要概念。在STM32微控制器中,这些概念广泛应用于串行通信(如USART、SPI和I2C协议)中。接下来,我会详细解释这些术语,并特别关注STM32中…...
网络安全之内网安全
下面给出了应对企业内网安全挑战的10种策略。这10种策略即是内网的防御策略,同时也是一个提高大型企业网络安全的策略。 1、注意内网安全与网络边界安全的不同 内网安全的威胁不同于网络边界的威胁。网络边界安全技术防范来自Internet上的攻击,主要是防…...
Odoo中,要实现实时数据推送,SSE 与 WebSocket 该如何选择
目录 1. 技术特点对比 2. 使用场景 适合使用 SSE 的场景: 适合使用 WebSocket 的场景: 3. 优缺点总结 SSE 优点: SSE 缺点: WebSocket 优点: WebSocket 缺点: 4. 选择建议 选择 SSE 的条件&#x…...
CTF--php伪协议结合Base64绕过
Base64绕过 在ctf中,base64是比较常见的编码方式,在做题的时候发现自己对于base64的编码和解码规则不是很了解,并且恰好碰到了类似的题目,在翻阅了大佬的文章后记录一下,对于base64编码的学习和一个工具 base64编码是…...
设计模式-创建型-抽象工厂模式
1.概念 工厂方法模式只能生产一个产品系列,抽象工厂可以生产多个产品系列 2.作用 多个具体产品组成一个产品族(产品系列),一个具体工厂负责生产一个产品族 3.应用场景 系统所需产品间由依赖关系,可以划分为同一产…...
Hadoop 系列 MapReduce:Map、Shuffle、Reduce
文章目录 前言MapReduce 基本流程概述MapReduce 三个核心阶段详解Map 阶段工作原理 Shuffle 阶段具体步骤分区(Partition)排序(Sort)分组(Combine 和 Grouping) Reduce 阶段工作原理 MapReduce 应用场景Map…...
TCA9548A I²C多路复用器原理与嵌入式实战指南
1. TCA9548A IC多路复用器技术解析与嵌入式系统集成实践 1.1 器件定位与工程价值 TCA9548A是德州仪器(TI)推出的低电压8通道IC总线开关,其核心价值在于解决嵌入式系统中IC总线地址冲突这一经典工程难题。在STM32、ESP32、Raspberry Pi等主流…...
Z-Image-GGUF惊艳效果:运动模糊、景深虚化、镜头畸变等摄影级效果模拟
Z-Image-GGUF惊艳效果:运动模糊、景深虚化、镜头畸变等摄影级效果模拟 1. 项目简介:当AI学会“拍照” 想象一下,你告诉AI:“给我一张黄昏时分,一个女孩在樱花树下奔跑的照片,要有那种风吹过发丝的动感&am…...
2026降AIGC率工具实测:10款好用工具推荐(论文AI痕迹重必看)
临近毕业季,不少同学都在为论文的AIGC检测头疼:明明是自己写的内容,却被判定为AI生成?用AI搭了初稿,怎么改都消不掉机器痕迹?到底有没有靠谱的降AI率工具能真正解决问题? 今天我就给大家整理了1…...
[AI/Agent/社交] AI Agent社交网络产品:MoltBook => InStreet
Julia(julialang.org)由Stefan Karpinski、Jeff Bezanson等在2009年创建,目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是: 高性能:编译型语言(JIT࿰…...
探索偏心轮飞剪的 Codesys 程序奥秘:基于偏心轮加滑块机构
偏心轮 飞剪 电子凸轮 codesys程序源码 适用于偏心轮加滑块机构 在自动化控制领域,偏心轮飞剪系统凭借其独特的运动特性和高效的切割能力,在众多生产场景中发挥着关键作用。今天咱们就深入探讨基于偏心轮加滑块机构的偏心轮飞剪的 Codesys 程序源码&…...
Qwen-Edit-2509多角度切换技术:如何用单张图片生成全视角内容?
Qwen-Edit-2509多角度切换技术:如何用单张图片生成全视角内容? 【免费下载链接】Qwen-Edit-2509-Multiple-angles 项目地址: https://ai.gitcode.com/hf_mirrors/dx8152/Qwen-Edit-2509-Multiple-angles 在视觉创作领域,你是否曾为拍…...
cool-admin(midway版)数据导入模板:Excel模板设计与导出
cool-admin(midway版)数据导入模板:Excel模板设计与导出 【免费下载链接】cool-admin-midway 🔥 cool-admin(midway版)一个很酷的后台权限管理框架,模块化、插件化、CRUD极速开发,永久开源免费,基于midway.js 3.x、typ…...
基于S7-200 PLC与组态王技术的温室大棚控制方案:包含梯形图原理图、IO分配及组态画面详解
基于S7-200 PLC和组态王温室大棚控制 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面菜农张叔上周还给我打电话吐槽:“小王啊,上周那场降温加突然转晴,我三点爬起来盖半层棉被…...
ARP 协议超详细讲解
前言网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址&…...
第一次降AIGC率不知道从哪入手?这份保姆级操作手册帮你
第一次操作的话,照着下面的步骤来,15分钟内搞定降AIGC率、降AI工具保姆级测评2026、降AI。 工具选嘎嘎降AI(www.aigcleaner.com),达标率99.26%,有退款保障,操作也不复杂。 准备工作 需要准备的…...
