《第一行代码》第二版学习笔记(8)——网络技术

文章目录

  • 一、Http
    • 1、HttpURLConnection
    • 2、OKHttp
  • 二、解析JSON格式数据
    • 1、使用JSONObject
    • 2、使用GSON解析JSON数据

在这里插入图片描述

一、Http

1、HttpURLConnection

 public void run() {HttpURLConnection connection = null;BufferedReader reader = null;try {URL url = new URL("http://www.baidu.com");connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.setConnectTimeout(8000);connection.setReadTimeout(8000);InputStream in = connection.getInputStream();//                    下面对获取到的输入流进行处理reader = new BufferedReader(new InputStreamReader(in));StringBuilder response = new StringBuilder();String line;while ((line = reader.readLine()) != null){response.append(line);}showRespnse(response.toString());}catch (Exception e){e.printStackTrace();}finally {if (reader != null){try {reader.close();}catch (IOException e){e.printStackTrace();}}if (connection != null){connection.disconnect();}}}}).start();}

2、OKHttp

导入依赖implementation 'com.squareup.okhttp3:okhttp:3.10.0'

    private void sendRequestWithOkHttp(){new Thread(new Runnable() {@Overridepublic void run() {try {OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().url("http://www.baidu.com").build();Response response = client.newCall(request).execute();String responseData = response.body().string();showRespnse(responseData);} catch (Exception e) {e.printStackTrace();}}}).start();}

二、解析JSON格式数据

1、使用JSONObject

    private void parseJSONWithJSONObject(String jsonData) {try {JSONArray jsonArray = new JSONArray(jsonData);for (int i = 0; i < jsonArray.length(); i++) {JSONObject jsonObject = jsonArray.getJSONObject(i);String id = jsonObject.getString("id");String name = jsonObject.getString("name");String version = jsonObject.getString("version");Log.d(TAG,"id is " + id);Log.d(TAG,"name is " + name);Log.d(TAG,"version is " + version);}} catch (JSONException e) {e.printStackTrace();}}

2、使用GSON解析JSON数据

导入依赖:implementation 'com.google.code.gson.2.10.1' 主要是将一个JSON格式的字符串自动映射成一个对象,无需手动解析。

假如有个Person类,包含name和age字段,调用如下代码就可以将JSON数据解析成一个Person对象了。

Gson gson = new Gson();
Person person = gson.fromJson(jsonData,Person.class);

如果是JSON数组,需要借助TypeToken将期望的数据类型传入到fromJson方法中,如下所示:

List<Person> people = gson.fromJson(jsonData,new TypeToken<List<Person>>(){}.getType());
    private void parseJSONWithGSON(String jsonData){Gson gson = new Gson();List<App> appList = gson.fromJson(jsonData,new TypeToken<List<App>>(){}.getType());for (App app : appList){Log.d(TAG,"id is " + app.getId());Log.d(TAG,"name is " + app.getName());Log.d(TAG,"version is " + app.getVersion());}}

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

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

相关文章

力扣每日一题114:二叉树展开为链表

题目 中等 提示 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同…

2024年CMS市场的份额趋势和使用统计

目前市面上有超过一半的网站都是使用CMS来搭建的&#xff0c;据不完全统计&#xff0c;现在大概有900多种CDM可供选择&#xff0c;以下是最常见的CMS的市场份额和使用率信息&#xff1a; 除了WordPress以外&#xff0c;Shopify和Wix也是比较流行的内容管理系统&#xff0c;尤其…

239 基于matlab的EKF(扩展卡尔曼滤波)_UKF(无迹卡尔曼滤波)_PF(粒子滤波)三种算法的估计结果比较

基于matlab的EKF(扩展卡尔曼滤波)_UKF(无迹卡尔曼滤波)_PF&#xff08;粒子滤波&#xff09;三种算法的估计结果比较&#xff0c;输出估计误差&#xff0c;并单独对粒子滤波进行估计及其置信区间可视化。程序已调通&#xff0c;可直接运行。 239 EKF(扩展卡尔曼滤波) - 小红书 …

一、Redis五种常用数据类型

Redis优势&#xff1a; 1、性能高—基于内存实现数据的存储 2、丰富的数据类型 5种常用&#xff0c;3种高级 3、原子—redis的所有单个操作都是原子性&#xff0c;即要么成功&#xff0c;要么失败。其多个操作也支持采用事务的方式实现原子性。 Redis特点&#xff1a; 1、支持…

【Linux】操作系统

上一篇博客我们从硬件的角度谈了计算机&#xff0c;我们说到了计算机的效率跟操作系统写的好不好有着直接的关系&#xff0c;那么这篇博客我们从软件的角度&#xff0c;就来谈一谈究竟什么是操作系统&#xff0c;为什么要有操作系统&#xff1f; 首先我们来大体的认识一下操作…

某塑料科技公司网络与机房监控运维项目

某塑料科技公司是由日本知名株式会社在中国投资的&#xff0c;以从事橡胶和塑料制品业为主的生产制造企业。随着企业信息化建设提速&#xff0c;信息化运用程度不断提高&#xff0c;对网络基础设施的管理也提出了更高要求&#xff0c;因此公司急需上线一款综合运维平台加强对整…

Go 语言 ORM 框架之 xorm

1、xorm 1.1、xorm 简介 xorm 是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 特性 支持 struct 和数据库表之间的灵活映射&#xff0c;并支持自动同步事务支持同时支持原始SQL语句和ORM操作的混合执行使用连写来简化调用支持使用ID, In, Where, Limit,…

Linux—-vim基础使用

1、基本概念 Vim的工作模式有四种&#xff0c;普通模式&#xff0c;输入模式&#xff0c;命令模式&#xff0c;可视模式。 在终端中打开vim&#xff0c;只需要输入vim 文件&#xff0c;在普通模式下按i就会进入到输入模式&#xff0c;按下:进入命令模式&#xff0c;输入:q就可…

【前端学习——防抖和节流+案例】

定义 【前端八股文】节流和防抖 防抖 连续触发事件但是在设定的一段时间内只执行最后一次 代码实现思路【定时器】 大概意思就是&#xff1a; 每次按起键盘后&#xff0c;都将之前的定时器删除&#xff0c;重新开始计时。 节流 连续触发事件&#xff0c;只执行一次 …

Python从0到100(二十):文件读写和文件操作

一、文件的打开和关闭 有了文件系统可以非常方便的通过文件来读写数据&#xff1b;在Python中要实现文件操作是非常简单的。我们可以使用Python内置的open函数来打开文件&#xff0c;在使用open函数时&#xff0c;我们可以通过函数的参数指定文件名、操作模式和字符编码等信息…

某站戴师兄——Excel实战

1、设置下拉选项&#xff1a;数据——数据验证——设置 如下设置&#xff1a; 2、If、sumif、index、match综合应用&#xff1a; sumif(条件区域&#xff0c;条件&#xff0c;目标区域&#xff09; sumifs(目标区域,条件区域1&#xff0c;条件1,条件区域2&#xff0c;条件2) …

Telnet的三种配置和SSH配置

Telnet的三种配置 实验配置思路&#xff1a; 配置接口IP地址&#xff1a; R1——配置接口IP地址 R2——配置接口IP地址 认证模式为none的配置 R1——认证模式配置为none R2——测试Telnet连接R1设备 认证模式为passwrd的配置 R1——认证模式配置为password R2——测试Telnet连…

19 内核开发-内核源码编译

19 内核开发-内核源码编译 (1)开始准备 安装好virtual box ubuntu 系统后&#xff0c;即可下载内核代码&#xff0c;进行编译 历史内核源码地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/ 下载 linux-5.10.102.tar.gz 的包,可以使用wget 命令 创建编译目…

Linux字符设备驱动(二) - 与设备驱动模型的关系

一&#xff0c;从/dev目录说起 从事Linux嵌入式驱动开发的人&#xff0c;都很熟悉下面的一些基础知识&#xff0c; 比如&#xff0c;对于一个char类型的设备&#xff0c;我想对其进行read wirte 和ioctl操作&#xff0c;那么&#xff1a; 1&#xff09;我们通常会在内核驱动中…

【数据库原理及应用】期末复习汇总高校期末真题试卷03

试卷 一、选择题 1 数据库中存储的基本对象是_____。 A 数字 B 记录 C 元组 D 数据 2 下列不属于数据库管理系统主要功能的是_____。 A 数据定义 B 数据组织、存储和管理 C 数据模型转化 D 数据操纵 3 下列不属于数据模型要素的是______。 A 数据结构 B 数据字典 C 数据操作 D…

QT开发(四) 制作一个JSON检查小工具

1、JSON概念 1.1 定义 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;它易于人类阅读和编写&#xff0c;同时也易于机器解析和生成。JSON基于JavaScript语言的子集&#xff0c;但是独立于编程语言&#xff0c;因此可以被多种…

根据相同的key 取出数组中最后一个值

数组中有很多对象 , 需根据当前页面的值current 和 数组中的key对比 拿到返回值 数据结构如下 之前写法 const clickedItem routeList.find(item > item.key current) // current是当前页 用reduce遍历数组返回最后一个值 const clickedItem routeList.reduce((lastIte…

音频可视化:原生音频API为前端带来的全新可能!

音频API是一组提供给网页开发者的接口&#xff0c;允许他们直接在浏览器中处理音频内容。这些API使得在不依赖任何外部插件的情况下操作和控制音频成为可能。 Web Audio API 可以进行音频的播放、处理、合成以及分析等操作。借助于这些工具&#xff0c;开发者可以实现自定义的音…

IPD-开发流程

2024-5-6记录于PR办公室 在上一家公司做硬件产品经理的时候&#xff0c;Richard Li曾花费“巨资”请了华为前战略专家给我们培训&#xff0c;讲授IPD这门课的模式都很IPD&#xff0c;当时完全没重视&#xff0c;光想着不可能靠这个能把产品做好&#xff0c;这样做产品必定是一批…

wordpress外贸建站公司歪建站新版网站上线

wordpress外贸建站公司 歪猫建站 歪猫WordPress外贸建站&#xff0c;专业从事WordPress多语言外贸小语种网站建设与外贸网站海个推广、Google SEO搜索引擎优化等服务。 https://www.waimaoyes.com/dongguan