android—ktor-client封装使用,请求网络
ktor-client封装使用步骤:
1.导入依赖:
设置版本号:
buildscript {ext.ktor_version = '2.3.1'
}
添加依赖:
implementation "io.ktor:ktor-client-okhttp:$ktor_version"implementation "io.ktor:ktor-client-auth:$ktor_version"implementation "io.ktor:ktor-client-core:$ktor_version"implementation "io.ktor:ktor-client-logging:$ktor_version"implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor_version")implementation("io.ktor:ktor-client-cio:$ktor_version")implementation("io.ktor:ktor-client-content-negotiation:$ktor_version")
2.封装网络工具类:
class HttpUtils {var baseUrl = "https://test.demo.cn"val httpClient = HttpClient(OkHttp) {install(ContentNegotiation) {json(Json {prettyPrint = trueisLenient = true})}install(HttpTimeout) {requestTimeoutMillis = 5000connectTimeoutMillis = 5000}install(DefaultRequest) {url { baseUrl }}}fun close() {httpClient.close()}inline fun <reified T> get(url: String, params: Map<String, String> = emptyMap()): Flow<T> {return flow {val response = httpClient.get(url) {params.forEach { parameter(it.key, it.value) }}val result = response.body<T>()emit(result)}.catch { throwable: Throwable ->throw throwable}.onCompletion { cause ->close()}.flowOn(Dispatchers.IO)}inline fun <reified T> post(url: String, params: Map<String, String> = emptyMap()): Flow<T> {return flow {val response = httpClient.post(url) {params.forEach { parameter(it.key, it.value) }}val result = response.body<T>()emit(result)}.catch { throwable: Throwable ->throw throwable}.onCompletion { cause ->close()}.flowOn(Dispatchers.IO)}}
3.进行请求:
private suspend fun testHttpClint(){HttpUtils().get<BaseResponse>("", mapOf("id" to "1")).collect{it.flag}}
PS: 网络请求需要放在协程里面使用
相关文章:
android—ktor-client封装使用,请求网络
ktor-client封装使用步骤: 1.导入依赖: 设置版本号: buildscript {ext.ktor_version 2.3.1 }添加依赖: implementation "io.ktor:ktor-client-okhttp:$ktor_version"implementation "io.ktor:ktor-client-auth…...
GD32F103VE侵入事件
GD32F103VE的TAMPER引脚(PC13),当PC13输入低电平时,会产生一个侵入检测事件。它会将所有“数据备份寄存器”内容清除。 这个功能有什么用? 一是防止被人开壳,抄袭。二是自毁功能。 直奔主题,多一句就是浪费时间。测试…...
将tp5项目、fastadmin项目部署到服务器宝塔面板
目录 一、将你的fastadmin或者tp5项目文件夹上传至你的服务器域名根目录下 二、修改你的网站目录指向,指向public目录,点击保存,并取消勾选防跨站攻击。 三、配置伪静态 四、fastadmin框架上传至服务器后如果想要访问后台可以进行重定向&am…...
Jenkins+Docker+SpringCloud微服务持续集成
JenkinsDockerSpringCloud微服务持续集成 JenkinsDockerSpringCloud持续集成流程说明SpringCloud微服务源码概述本地运行微服务本地部署微服务 Docker安装和Dockerfile制作微服务镜像Harbor镜像仓库安装及使用在Harbor创建用户和项目上传镜像到Harbor从Harbor下载镜像 微服务持…...
系统架构设计师-系统可靠性分析与设计
目录 一、可靠性相关基本概念 二、可靠性指标 1、串联系统与并联系统可靠性指标计算 2、混合系统 三、可靠性设计 1、影响软件可靠性的主要因素: 2、增加可靠性的解决方案 2.1 避错技术 2.2 降低复杂度设计 2.3 检错技术 2.4 容错技术 3、双机容错 一、可靠性相关…...
Linux(CentOS7)搭建达梦数据库
参考官方文档 本文记录一下达梦数据库的安装步骤,在安装的过程中出现了一些问题,进行了处理。 文章目录 安装前准备数据库安装命令行安装图形化安装 配置实例注册服务启动、停止数据库达梦数据库卸载 安装前准备 用户在安装 DM 数据库之前需要检查或修…...
[杂谈]-国产MCU竞争力浅析
[杂谈]-国产MCU竞争力浅析 文章目录 [杂谈]-国产MCU竞争力浅析1、研发方面2、技术方面3、市场方面4、应用方面5、生态方面6、总结 微控制器(MCU)是一种集成了微处理器、存储器、输入/输出接口和其他外设的单片电路,广泛应用于各种电子产品和系…...
4.1、Flink任务怎样读取集合中的数据
1、API说明 非并行数据源: def fromElements[T: TypeInformation](data: T*): DataStream[T] def fromCollection[T: TypeInformation](data: Seq[T]): DataStream[T] def fromCollection[T: TypeInformation] (data: Iterator[T]): Data…...
JD商品详情页面+关键词搜索商品列表API接口数据,详情页面数据返回值说明
作为一个工作助手,我无法直接为您提供实时的京东商品详情。您可以通过访问京东官方网站或使用API接口来查看商品的详细信息。每个商品的详情页面通常会包括以下内容: 1. 商品标题:商品的名称和简要描述。 2. 价格信息:包括原价、…...
Electron v26.0.0-beta.11 发布,跨平台桌面应用开发工具
Electron是一款跨平台桌面应用开发工具,它基于Web技术,使用HTML、CSS和JavaScript来构建应用程序。它能够让开发者使用熟悉的Web开发技术来创建强大的桌面应用,并且可以运行在Windows、macOS和Linux等多个操作系统上。 一、Electron的特点 跨平台:Electron可以将Web技术转…...
提高办案效率:公检系统引入自动校对技术
引入自动校对技术到公检系统中可以有效提高办案效率。自动校对技术结合公检系统的特点,可以在以下方面提高办案效率: 1.节省时间:自动校对技术可以快速检测和修正法律文书中的语法、拼写和标点符号等错误。与手动校对相比,自动校对…...
iptables 清空
清空 iptables中所有策略。 -Z: 重置计数器 -F:删除所有规则(flush) -X:删除所有自定义的链 规则清理和重建如下: iptables -Z iptables -t nat -F iptables -t nat -X iptables -t nat -P PREROUTING A…...
网络安全(黑客)零基础入门
导语 什么是 Web 安全?我又该如何入门学习它呢?学习过程中又应注意哪些问题呢?... 或许你的心中有着这样的疑问、不过别着急,本文会为你一一解答这些问题。 正文 定义 Web 安全,顾名思义便是由保障 Web 应用能够持续…...
Al Go: 蒙特卡洛树搜索(MCTS)简介
目录 1. 前言 1.1 Minimax 1.2 剪枝 1.3 蒙特卡洛树搜索 1.4 为什么随机走子会可行呢? 2. vanilla Monte Carlo tree search 3. UCT-based trade-off between exploitation and exploration 4. MCTS基本算法流程 5. Efficiency Through Expert Policies 6…...
Client-go操作Deployment
在工作中需要对kubernetes进行自定义资源的开发,操作K8s的资源肯定是必不可少的。K8s原生语言是用Go编写的,所以在CRD中使用client-go来操作资源。本次介绍一下使用client-go来操作Deployment。 1. 创建main函数 func main() {homePath : homedir.Home…...
设计模式——单例模式(懒汉和饿汉)
单例模式 一、概念 单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。一个类只能有一个实例在生活中是很常见的,比如打印机程…...
详解——Vue3递归函数功能
在 Vue 3 中,递归函数是一种在组件中调用自身的技术。递归函数在解决树状数据结构、无限级分类、嵌套组件等情况下非常有用。以下是一个示例,展示如何在 Vue 3 中实现递归函数的功能、代码和原理: 1. 创建递归组件: 首先&#x…...
【VSCode】查看二进制文件
1.安装插件Hex Editor 2.打开二进制文件 3.执行Hex Editor命令...
C#设计模式之观察者模式
题目:假设你正在开发一个简单的新闻发布系统,该系统允许用户订阅不同的新闻频道,并在有新闻发布时向订阅者发送通知。使用观察者模式设计和实现该系统。观察者模式的相关概念和定义: 观察者模式是一种行为设计模式,它定…...
小红书攻略:爆款引流,如何在激烈竞争中脱颖而出?
小红书(RED)作为国内最具影响力的社交电商平台之一,是很多品牌运营者的首选之一。然而,在小红书的激烈竞争中,如何快速引流、吸引关注,成为了品牌运营者面临的挑战。本篇文章一秒推小编将为您介绍小红书运营…...
【Eviews实战指南】异方差诊断与加权最小二乘法优化
1. 异方差问题初探:为什么你的回归结果不可靠? 第一次用Eviews跑回归时,我发现一个奇怪现象:明明模型R很高,但t检验结果就是不稳定。后来导师指着残差图告诉我:"小伙子,你这是遇到异方差了…...
Golang如何处理JSON空值null_Golang JSON空值处理教程【精通】
Go解析JSON时null被忽略或panic的解决方法:用*string等指针类型接收可空字段;对三态需求(null/空值/缺失)用NullString;避免interface{}和滥用json.RawMessage;优先用标准库,第三方库仅在性能或…...
艾默生15kW直流充电模块DCDC控制软件分析
系统概述 艾默生15kW直流充电模块是一款高性能的电力转换设备,采用DSP2803x系列数字信号处理器作为核心控制器。该软件系统实现了对直流-直流(DCDC)转换器的精确控制,具备完善的保护机制和通信功能。 核心架构设计 1. 控制系统…...
一款即插即用的西门子PLC测试工具,全面支持S7200、SMART 1200、1500、300...
西门子PLC测试工具,支持S7200,SMART 1200 1500 300等各种PLC,到手即用,。搞自动化的小伙伴们有没有遇到过PLC调试效率低的问题?今天要安利的这个西门子全家桶测试工具,简直就是程序员的物理外挂。从老掉牙的…...
如何三步搞定macOS安装包下载:Download Full Installer终极指南
如何三步搞定macOS安装包下载:Download Full Installer终极指南 【免费下载链接】DownloadFullInstaller macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application. 项目地址: https://gitcode.com/gh_mi…...
零基础入门:计算机视觉需要哪些数学基础?如何高效学习线性代数和概率论?
零基础入门:计算机视觉需要哪些数学基础?如何高效学习线性代数和概率论? 标签:#计算机视觉、#线性代数、#人工智能、#深度学习、#自然语言处理、#神经网络、#机器学习### 一、痛点引入:为什么很多人怕CV数学࿱…...
Java-RPG-Maker-MV-Decrypter:5步轻松解密RPG游戏资源的完整教程
Java-RPG-Maker-MV-Decrypter:5步轻松解密RPG游戏资源的完整教程 【免费下载链接】Java-RPG-Maker-MV-Decrypter You can decrypt whole RPG-Maker MV Directories with this Program, it also has a GUI. 项目地址: https://gitcode.com/gh_mirrors/ja/Java-RPG-…...
抖音直播间弹幕实时采集完整指南:快速搭建专业级数据监控系统
抖音直播间弹幕实时采集完整指南:快速搭建专业级数据监控系统 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2025最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 想要在5分钟…...
猫抓Cat-Catch:解锁网页媒体资源的终极免费解决方案
猫抓Cat-Catch:解锁网页媒体资源的终极免费解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存心爱的在线视频而苦…...
解锁Android的Linux潜能:PRoot如何重塑移动开发边界
解锁Android的Linux潜能:PRoot如何重塑移动开发边界 【免费下载链接】proot An chroot-like implementation using ptrace. 项目地址: https://gitcode.com/gh_mirrors/pro/proot 在移动设备上运行完整的Linux环境曾经是遥不可及的梦想,需要复杂的…...
