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…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...