买了域名之后怎么用/北京网站优化经理

买了域名之后怎么用,北京网站优化经理,深圳网站建设送域名,芜湖市建设银行支行网站一、使用okhttp3和gson build.gradle ... dependencied {...implementation com.squareup.okhttp3:okhttp:3.9.0implementation com.google.code.gson:gson:2.10.1 }二、响应模型 可根据实际情况进行调整,目前我所需的就是这三个变量 HttpResponseData.java im…

一、使用okhttp3和gson

build.gradle

...
dependencied {...implementation 'com.squareup.okhttp3:okhttp:3.9.0'implementation 'com.google.code.gson:gson:2.10.1'
}

二、响应模型

可根据实际情况进行调整,目前我所需的就是这三个变量

HttpResponseData.java

import java.util.HashMap;public class HttpResponseData extends MoBase {public String message;public int result;public HashMap<String, Object> data;@Overridepublic HashMap<String, Object> toMap() {HashMap<String, Object> ret = new HashMap<>();ret.put("code", result);if (data != null) {ret.put("data", data);}return ret;}
}

三、定义网络请求的callback

// todo:根据实际调整
import ....HttpResponseData;import java.io.IOException;import okhttp3.ResponseBody;public interface OkHttpCallback {void onSuccess(int code, HttpResponseData response);void onFailure(IOException e);
}

四、自定义反序列化

因为我的请求接口,存在如下情况,所以需要自定义反序列化

  • data有时为data,有时为datas
  • 本身要将data传到flutter层,所以需要转为基本类型
// todo:根据实际调整
import ....HttpResponseData;
import com.google.gson.*;import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.Map;class ResponseDataDeserializer implements JsonDeserializer<HttpResponseData> {@Overridepublic HttpResponseData deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {JsonObject jsonObject = json.getAsJsonObject();HttpResponseData HttpResponse = new HttpResponseData();HttpResponse.message = jsonObject.get("message").getAsString();HttpResponse.result = jsonObject.get("result").getAsInt();JsonElement dataElement = jsonObject.get("datas");if (dataElement == null) {dataElement = jsonObject.get("data");}if (dataElement != null) {if (dataElement.isJsonObject()) {Set<String> keys = dataElement.getAsJsonObject().keySet();HashMap<String, Object> map = new HashMap<>();for (String key : keys) {JsonElement value = dataElement.getAsJsonObject().get(key);Object convertedValue = convertJsonElement(value);map.put(key, convertedValue);}HttpResponse.data = map;} else if (dataElement.isJsonArray()) {JsonArray jsonArray = dataElement.getAsJsonArray();HashMap<String, Object> map = new HashMap<>();List<Object> array = new ArrayList<>();for (int i = 0; i < jsonArray.size(); i++) {Object res = convertJsonElement(jsonArray.get(i));array.add(res);}map.put("data", array);HttpResponse.data = map;}} else {if (HttpResponse.result == 0) {HashMap<String, Object> map = new HashMap<>();map.put("result", HttpResponse.result);HttpResponse.data = map;}}return HttpResponse;}private static Object convertJsonElement(JsonElement value) {if (value.isJsonPrimitive()) {JsonPrimitive primitive = value.getAsJsonPrimitive();if (primitive.isString()) {return primitive.getAsString();} else if (primitive.isNumber()) {if (primitive.getAsNumber() instanceof Double) {return primitive.getAsNumber().doubleValue();}return primitive.getAsNumber().intValue();} else if (primitive.isBoolean()) {return primitive.getAsBoolean();}} else if (value.isJsonObject()) {JsonObject jsonObject = value.getAsJsonObject();HashMap<String, Object> nestedMap = new HashMap<>();for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) {nestedMap.put(entry.getKey(), convertJsonElement(entry.getValue()));}return nestedMap;} else if (value.isJsonArray()) {JsonArray jsonArray = value.getAsJsonArray();List<Object> array = new ArrayList<>();for (int i = 0; i < jsonArray.size(); i++) {Object res = convertJsonElement(jsonArray.get(i));array.add(res);}return array;} else if (value.isJsonNull()) {return null;}return null;}
}

五、okhttp3单例方法

import okhttp3.*;// todo:根据实际使用
import ...HttpResponseData;
import com.google.gson.*;import java.io.File;
import java.io.IOException;import java.util.HashMap;
import java.util.Map;public class OkHttpSingleton {private static volatile OkHttpSingleton instance;private final OkHttpClient client;private final Gson gson;private OkHttpSingleton() {GsonBuilder gsonBuilder = new GsonBuilder();gsonBuilder.registerTypeAdapter(HttpResponseData.class, new ResponseDataDeserializer());gson = gsonBuilder.create();client = new OkHttpClient();}public static OkHttpSingleton getInstance() {if (instance == null) {synchronized (OkHttpSingleton.class) {if (instance == null) {instance = new OkHttpSingleton();}}}return instance;}public void executeGetRequest(String url, Map<String, String> headers, OkHttpCallback callback) {Request.Builder requestBuilder = new Request.Builder().url(url);if (headers != null) {for (Map.Entry<String, String> entry : headers.entrySet()) {requestBuilder.addHeader(entry.getKey(), entry.getValue());}}Request request = requestBuilder.build();client.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {callback.onFailure(e);}@Overridepublic void onResponse(Call call, Response response) throws IOException {if (response.isSuccessful() && response.body() != null) {callback.onSuccess(response.code(), gson.fromJson(response.body().string(), HttpResponseData.class));} else {callback.onFailure(new IOException("Request failed with code: " + response.code()));}}});}private void executePostRequest(String url, Map<String, String> headers, Map<String, Object> params, OkHttpCallback callback) {if (params == null) {params = new HashMap<>();}String jsonBody = new Gson().toJson(params);MediaType JSON = MediaType.parse("application/json; charset=utf-8");RequestBody body = RequestBody.create(JSON, jsonBody);Request.Builder requestBuilder = new Request.Builder().url(url).post(body);if (headers != null) {for (Map.Entry<String, String> entry : headers.entrySet()) {requestBuilder.addHeader(entry.getKey(), entry.getValue());}}Request request = requestBuilder.build();client.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {callback.onFailure(e);}@Overridepublic void onResponse(Call call, Response response) throws IOException {if (response.isSuccessful() && response.body() != null) {callback.onSuccess(response.code(), gson.fromJson(response.body().string(), HttpResponseData.class));} else {callback.onFailure(new IOException("Request failed with code: " + response.code()));}}});}// todo:需要按照实际格式调整参数keyprivate void executeUploadRequest(String url, String path, OkHttpCallback callback) {MediaType JSON = MediaType.parse("image/*; charset=utf-8");File file = new File(path);RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("PhotoFile",file.getName(),RequestBody.create(JSON, file)).build();Request.Builder requestBuilder = new Request.Builder().url(url).post(body);Request request = requestBuilder.build();client.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {callback.onFailure(e);}@Overridepublic void onResponse(Call call, Response response) throws IOException {if (response.isSuccessful() && response.body() != null) {callback.onSuccess(response.code(), gson.fromJson(response.body().string(), HttpResponseData.class));} else {callback.onFailure(new IOException("Request failed with code: " + response.code()));}}});}public void handleHttpGetRequest(MethodChannel.Result result, String url, Map<String, String> headers) {executeGetRequest(url, headers, new OkHttpCallback() {@Overridepublic void onFailure(IOException e) {// todo:处理错误}@Overridepublic void onSuccess(int code, HttpResponseData response) {// todo:处理响应体}});}public void handleHttpPostRequest(MethodChannel.Result result, String url, Map<String, String> headers, Map<String, Object> body) {executePostRequest(url, headers, body, new OkHttpCallback() {@Overridepublic void onFailure(IOException e) {// todo:处理错误}@Overridepublic void onSuccess(int code, HttpResponseData response) {// todo:处理响应体}});}public void handleHttpUploadRequest(MethodChannel.Result result, String url, String path) {executeUploadRequest(url, path, new OkHttpCallback() {@Overridepublic void onFailure(IOException e) {// todo:处理错误}@Overridepublic void onSuccess(int code, HttpResponseData response) {// todo:处理响应体}});}
}

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

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

相关文章

【蓝桥杯每日一题】3.28

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x "今天熬的夜&#xff0c;会变成明天奖状的闪光点&#xff01;" 目录 一、唯一的雪花 题目链接 题目描述 解题思路 解题代码 二、逛画展 题目链接 题目描述 解题思路 解题代…

进程间通信——信号量

进程间通信——信号量 目录 一、基本概念 1.1 概念 1.2 基本操作 1.3 相关函数 1.3.1 semget创建/获取 1.3.2 semop操作信号量 1.3.3 semctl初始化/删除 二、代码操作 2.1 不用PV的 2.2 用PV 的 2.2.1 a.c 2.2.2 b.c 2.2.3 sem.h 2.2.4 sem.c 一、基本概念 1.1…

Linux内核2-TFTP与NFS环境搭建

Uboot&#xff1a;引导程序 初始化硬件设备&#xff0c;初始化c语言环境&#xff0c;为内核加载做准备 zImage:内核文件 rootfs:文件系统&#xff0c;为用户提供一个与硬件设备数据交互的系统 1.TFTP和NFS功能 TFTP:简单文件传输协议网络配置 pc可以下载 2.minicom bootargs…

Crypto Architecture Kit简介

HarmonyOS 5.0.3(15) 版本的配套文档&#xff0c;该版本API能力级别为API 15 Release 文章目录 约束与限制能力范围基本概念与相关Kit的关系 Crypto Architecture Kit屏蔽了第三方密码学算法库实现差异的算法框架&#xff0c;提供加解密、签名验签、消息验证码、哈希、安全随机…

交流电机类型及其控制技术

交流电机可分为同步电机和异步电机两大种类&#xff0c;如果电机转子的转速与定子旋转磁场的转速相等&#xff0c;转子与定子旋转磁场在空间同步地旋转&#xff0c;这种电机就称为同步电机。如果电机转子的转速不等于定子旋转磁场的转速&#xff0c;转子与定子旋转磁场在空间旋…

fluent_UDF学习笔记

UDF源代码路径 D:\Program Files\ANSYS Inc\v231\fluent\fluent23.1.0\src关于颗粒反弹速度的计算 /* 通过面法向单位向量计算速度的法向向量、切向向量&#xff0c;再通过法向、切向恢复系数重新计算反弹速度*//* Compute normal velocity.将颗粒速度向面法线方向投影&#x…

第十六届蓝桥杯模拟二(串口通信)

由硬件框图可以知道我们要配置LED 和按键 一.LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 二.按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码,在文件夹中添加code文件夹,code中添加fun.…

06-ADC

ADC简介 Analog-Digital Converter 模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁。 12位逐次逼近型ADC&#xff0c;1us转换时间&#xff1b;输入电压范围&#xff1a;0-3.3V&#xff0c;转换结果…

二层综合实验

拓扑图 实验要求 1.内网IP地址使用172.16.6.0/16分配 2.sw1和sW2之间互为备份 3.VRRP/STP/VLAN/Eth-trunk均使用 4.所有Pc均通过DHCP获取IP地址 5.ISP只能配置IP地址 6.所有电脑可以正常访问IsP路由器环回 实验思路 这是一个二层综合实验每当拿到一个实验看清楚要求之后都有…

Java实现pdf中动态插入图片

今天接到一个需求&#xff0c;需要在pdf中的签名处&#xff0c;插入签名照片&#xff0c;但签名位置不固定&#xff0c;话不多说上代码&#xff1a; 1、首先引入itextpdf依赖包&#xff1a; <dependency><groupId>com.itextpdf</groupId><artifactId>…

基于Spring AI开发本地Jenkins MCP Server服务

前言 首先介绍下MCP是什么&#xff1f; MCP是由开发了 Claude 模型的 Anthropic 公司2024年12月提出并开源的一项开放标准&#xff0c;全称&#xff1a;Model Context Protocol&#xff0c;它是一个开放协议&#xff0c;它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能…

vcpkg安装指定版本的库

一.vcpkg安装 使用git将vcpkg源码克隆到本地制定目录&#xff08;D:\vcpkg&#xff09;&#xff0c;并初始化 git clone https://github.com/microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh # Linux/macOS .\bootstrap-vcpkg.bat # Windows 如下图&#xff1a; 二.安…

WPF ContentPresenter详解2

ContentPresenter与ContentControl的区别 ContentControl 和 ContentPresenter 是 WPF 中两个相关的控件&#xff0c;但它们在用途和功能上有一些关键的区别。理解这两者的区别和联系有助于更好地设计和开发用户界面。 1. 类层次结构 ContentControl&#xff1a;位于 WPF 控件…

【HTML5游戏开发教程】零基础入门合成大西瓜游戏实战 | JS物理引擎+Canvas动画+完整源码详解

《从咖啡杯到财务自由&#xff1a;一个程序员的合成之旅——当代码遇上物理引擎的匠心之作》 &#x1f31f; 这是小游戏开发系列的第四篇送福利文章&#xff0c;感谢一路以来支持和关注这个项目的每一位朋友&#xff01; &#x1f4a1; 文章力求严谨&#xff0c;但难免有疏漏之…

RTMP推流+EasyDSS云服务+边缘AI分析的无人机监控系统设计

在现代科技不断发展的背景下&#xff0c;无人机技术已经广泛应用于各个领域&#xff0c;从航拍摄影到工业巡检&#xff0c;从农业监测到应急救援&#xff0c;无人机以其高效的工作能力&#xff0c;为人们的生活和工作带来了诸多便利与创新&#xff0c;而其视频传输与分析系统更…

HCIP(VLAN综合实验)

实验拓补图 实验分析 一、实验目的 掌握VLAN的创建和配置方法理解VLAN在局域网中的作用学习如何通过VLAN实现网络隔离和通信 二、实验环境 交换机&#xff08;SW1、SW2、SW3&#xff09;个人电脑&#xff08;PC1、PC2、PC3、PC4、PC5、PC6&#xff09;路由器&#xff08;R1…

第十二章——位运算

按位的与& 若x的第i位和y的第i位都是1&#xff0c;那么&#xff08;x&y&#xff09;1&#xff0c;否则&#xff08;x&y&#xff09; 0 应用&#xff1a;希望让某一位或某些位为0 。取一个数中的一段。 按位的或| 若x的第i位1或y的第i位1&#xff0c;那么&…

【Mysql:内置函数】

日期函数&#xff1a; 查看当前日期&#xff1a; select current_date();查看当前时间&#xff1a; select current_time(); 查看当前时间戳&#xff1a; select current_timestamp(); 计算两个日期的差值&#xff1a; select datediff(date1,date2); 当前的日期时间&a…

71. 我的第一个Linux驱动实验

一、字符设备驱动框架 字符设备驱动的编写主要就是驱动对应的open、close、read。。。其实就是 file_operations结构体的成员变量的实现。 其中关于 C 库以及如何通过系统调用“陷入” 到内核空间这个我们不用去管&#xff0c;我们重点关注的是应用程序和具体的驱动&#xff0…

jdk21使用Vosk实现语音文字转换,免费的语音识别

1.下载vosk的model vosk官网&#xff1a;https://alphacephei.com/vosk/models 我这里使用较小的vosk-model-small-cn-0.22 2.添加相关pom文件 <!-- 获取音频信息 --><dependency><groupId>org</groupId><artifactId>jaudiotagger</artifac…