当前位置: 首页 > news >正文

如何利用 Java 爬虫获取京东商品详情信息

在电商领域,获取商品详情信息对于数据分析、市场研究和用户体验优化具有重要意义。京东作为国内知名的电商平台,提供了丰富的商品详情信息 API 接口。通过 Java 爬虫技术,我们可以高效地调用这些接口,获取商品的详细信息,并进行进一步的处理和分析。本文将详细介绍如何使用 Java 实现这一功能,并对 API 返回值进行详细说明。

一、准备工作

1. 注册京东开放平台账号

要使用京东商品详情信息 API,首先需要在京东开放平台(https://open.jd.com/)注册账号,并创建应用以获取 App KeyApp Secret。这些是调用 API 所必需的凭证。

2. 安装必要的 Java 库

确保你的 Java 开发环境中安装了以下库:

  • HttpClient:用于发送 HTTP 请求。

  • JacksonGson:用于解析 JSON 数据。

如果你使用 Maven 进行项目管理,可以在 pom.xml 文件中添加以下依赖:

xml

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.3</version>
</dependency>

二、代码实现

以下是一个完整的 Java 示例代码,展示如何调用京东商品详情信息 API,并处理返回的数据。

1. 发送 HTTP 请求

使用 HttpClient 发送请求,并获取 API 返回的数据。

java

import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;public class JDProductDetailCrawler {public static void main(String[] args) {String appKey = "your_app_key"; // 替换为你的 App KeyString appSecret = "your_app_secret"; // 替换为你的 App SecretString skuId = "123456"; // 替换为商品的 SKU IDString timestamp = String.valueOf(System.currentTimeMillis() / 1000); // 当前时间戳String signature = generateSignature(appKey, appSecret, timestamp); // 生成签名String apiUrl = "https://api.jd.com/routerjson";String url = apiUrl + "?method=item_detail&app_key=" + appKey +"&timestamp=" + timestamp + "&v=2.0&sign_method=md5&sign=" + signature +"&param_json={\"skuIds\":\"" + skuId + "\"}";try (CloseableHttpClient httpClient = HttpClients.createDefault()) {HttpGet request = new HttpGet(url);try (CloseableHttpResponse response = httpClient.execute(request)) {if (response.getStatusLine().getStatusCode() == 200) {String jsonResponse = EntityUtils.toString(response.getEntity());System.out.println("API Response: " + jsonResponse);parseResponse(jsonResponse);} else {System.out.println("请求失败,状态码:" + response.getStatusLine().getStatusCode());}}} catch (Exception e) {e.printStackTrace();}}private static String generateSignature(String appKey, String appSecret, String timestamp) {// 这里需要根据京东 API 文档实现签名生成逻辑// 示例:MD5(appKey + timestamp + appSecret)return "generated_signature"; // 替换为实际生成的签名}private static void parseResponse(String jsonResponse) {try {ObjectMapper objectMapper = new ObjectMapper();JsonNode rootNode = objectMapper.readTree(jsonResponse);JsonNode itemsNode = rootNode.path("jingdong_item_detail_response").path("items");for (JsonNode itemNode : itemsNode) {String numIid = itemNode.path("num_iid").asText();String title = itemNode.path("title").asText();String detailUrl = itemNode.path("detail_url").asText();String picUrl = itemNode.path("pic_url").asText();double price = itemNode.path("price").asDouble();String description = itemNode.path("description").asText();System.out.println("商品 ID: " + numIid);System.out.println("商品标题: " + title);System.out.println("商品详情页 URL: " + detailUrl);System.out.println("商品图片 URL: " + picUrl);System.out.println("商品价格: " + price);System.out.println("商品描述: " + description);}} catch (Exception e) {e.printStackTrace();}}
}
2. 解析返回的 JSON 数据

解析 API 返回的 JSON 数据,并提取商品的详细信息。

java

private static void parseResponse(String jsonResponse) {try {ObjectMapper objectMapper = new ObjectMapper();JsonNode rootNode = objectMapper.readTree(jsonResponse);JsonNode itemsNode = rootNode.path("jingdong_item_detail_response").path("items");for (JsonNode itemNode : itemsNode) {String numIid = itemNode.path("num_iid").asText();String title = itemNode.path("title").asText();String detailUrl = itemNode.path("detail_url").asText();String picUrl = itemNode.path("pic_url").asText();double price = itemNode.path("price").asDouble();String description = itemNode.path("description").asText();System.out.println("商品 ID: " + numIid);System.out.println("商品标题: " + title);System.out.println("商品详情页 URL: " + detailUrl);System.out.println("商品图片 URL: " + picUrl);System.out.println("商品价格: " + price);System.out.println("商品描述: " + description);}} catch (Exception e) {e.printStackTrace();}
}

三、API 返回值说明

京东商品详情信息 API 的返回值是一个 JSON 对象,其结构如下:

返回值示例

JSON

{"code": "0","errorMessage": "success","jingdong_item_detail_response": {"items": [{"num_iid": "1234567890","title": "商品标题","detail_url": "https://item.jd.com/1234567890.html","pic_url": "https://img10.360buyimg.com/n1/s200x200_jfs/t1/123456/1/1234567890.jpg","price": "120.00","description": "商品详细描述"}]}
}
返回值字段说明
  • code:返回的状态码,表示请求的结果。0 表示成功,其他值表示失败。

  • errorMessage:错误信息,描述了返回状态码对应的错误原因。

  • jingdong_item_detail_response:商品详情信息的响应数据。

    • items:商品列表,包含多个商品的详细信息。

      • num_iid:商品的唯一标识 ID。

      • title:商品标题。

      • detail_url:商品详情页的 URL。

      • pic_url:商品图片的 URL。

      • price:商品当前价格。

      • description:商品详细描述。

四、注意事项

  1. API 使用限制

    • 京东 API 可能对请求频率和数据量有限制。建议在实际使用中合理安排请求间隔,避免被封禁。

  2. 数据隐私

    • 确保遵守京东开放平台的使用条款,不要滥用数据。

  3. 异常处理

    • 在请求过程中可能会遇到网络问题、API 限制或其他错误。建议使用 try-catch 语句捕获异常,并合理处理。

  4. 签名生成

    • 根据京东 API 文档,生成签名是调用 API 的必要步骤。确保正确实现签名生成逻辑。

五、总结

通过上述步骤和代码,你可以使用 Java 爬虫技术获取京东商品的详细信息,并将其保存到本地文件或数据库中。希望这个示例对你有所帮助!

相关文章:

如何利用 Java 爬虫获取京东商品详情信息

在电商领域&#xff0c;获取商品详情信息对于数据分析、市场研究和用户体验优化具有重要意义。京东作为国内知名的电商平台&#xff0c;提供了丰富的商品详情信息 API 接口。通过 Java 爬虫技术&#xff0c;我们可以高效地调用这些接口&#xff0c;获取商品的详细信息&#xff…...

【spark--scala】--环境配置

文章目录 scalaspark scala 官网下载二进制包 添加环境变量 #set scala export SCALA_HOME/usr/local/src/scala-2.11.8 export PATH$PATH:$SCALA_HOME/binspark 官网下载二进制包 解压后 spark/conf cp slaves.template slaves cp spark-env.sh.template spark-env.sh# s…...

Spark Core学习总结

一、Spark运行架构 1. 核心组件 Driver&#xff08;驱动器&#xff09;&#xff1a; 执行main方法&#xff0c;负责将用户程序转换为作业&#xff08;Job&#xff09;。 调度任务&#xff08;Task&#xff09;到Executor&#xff0c;并监控任务执行状态。 通过UI展示作业运行情…...

Python深度学习基础——深度神经网络(DNN)(PyTorch)

张量 数组与张量 PyTorch 作为当前首屈一指的深度学习库&#xff0c;其将 NumPy 数组的语法尽数吸收&#xff0c;作为自己处理张量的基本语法&#xff0c;且运算速度从使用 CPU 的数组进步到使用 GPU 的张量。 NumPy 和 PyTorch 的基础语法几乎一致&#xff0c;具体表现为&am…...

前端三件套—CSS入门

上篇文章&#xff1a; 前端三件套—HTML入门https://blog.csdn.net/sniper_fandc/article/details/147070026?fromshareblogdetail&sharetypeblogdetail&sharerId147070026&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 引入CSS …...

mapreduce-案例-简单的数据清洗案例代码

//1.从Mapper继承 //2.重写map方法 //LongWritable,Text:表示初始输入的键值对格式。LongWritable是键的数据类型&#xff0c;Text是值的数据类型 //Text,LongWritable:表示map函数输出的数据的格式。Text是键的数据类型&#xff0c;LongWritable是值的数据类型 public class W…...

为什么PDF文件更适合LLM大模型信息提取?

为什么PDF文件更适合LLM大模型信息提取&#xff1f; 在Dify平台中&#xff0c;我们通过LLM大模型提取上传文件中的指定信息。目前使用的大模型包括qwen2:7b和deepseek-r1:70b。然而&#xff0c;我们发现一个有趣的现象&#xff1a;在提取信息时&#xff0c;PDF文件的表现明显优…...

期权时间价值与隐含波动率怎么选?

期权隐含波动率与时间价值要怎么选&#xff1f;期权隐含波动率IV对期权价格有着巨大的影响。整体来看&#xff0c;期权隐波与期权价格呈正相关关系。当期权隐波从低水平上升时&#xff0c;期权价格也会相应上涨&#xff1b;反之&#xff0c;当隐波下降&#xff0c;期权价格则会…...

LangChain入门指南:调用DeepSeek api

文章目录 1. 什么是LangChain&#xff1f;2. 核心组件3. 为什么选择LangChain&#xff1f;4. 实战案例安装简单chat案例流式交互Prompt模板 5. 简单总结 1. 什么是LangChain&#xff1f; 定义&#xff1a;LangChain是一个用于构建大语言模型&#xff08;LLM&#xff09;应用的…...

Cherry Studio配置MCP server

MCP server在很多的app上开始支持了,从以前的claude desktop,到cursor,vscode等等,甚至现在开源的软件也都开始支持mcp协议的配置了.这里主要来说一下如何在cherry studio中配置好mcp的服务. cheery studio 中配置MCP并使用 基础配置过程Blender MCP百度地图GitGithubfilesyst…...

前端快速入门——JavaScript变量、控制语句

1.JavaScript 定义 JavaScript 简称 JS. JavaScript 是一种轻量级、解释型、面向对象的脚本语言。它主要被设计用于在网页上实现动态效果&#xff0c;增加用户与网页的交互性。 作为一种客户端脚本语言&#xff0c;JavaScript 可以直接嵌入 HTML&#xff0c;并在浏览器中执行。…...

[CISSP] [8] 安全模型,设计和能力的原则

开源软件&#xff08;Open Source Software, OSS&#xff09; 优点&#xff1a; 透明性高 开源软件的源代码对公众开放&#xff0c;安全专家和用户可以检查其实现&#xff0c;验证是否存在安全隐患。 社区驱动的漏洞发现 有大量开发者和安全研究人员参与代码审查&#xff0c;…...

docker使用

最近为了打vulhub也是搞了好久的docker&#xff0c;搞了半天搞得我头大&#xff0c;结果还是没能成功&#xff0c;不知道为什么起shiro550靶场总是报139的错误&#xff0c;在网上搜了半天也没有解决&#xff0c;有没有师傅救一下喵QaQ 安装就不说了喵&#xff0c;安装完记得换…...

phpexcel导出下拉框,超过255字符不显示的问题处理

用php生成excel模板&#xff0c;并设置下拉框的选项。如果选项太多&#xff0c;可能导致下拉框不显示的问题。下面会给出示例&#xff0c;以及解决方案&#xff0c;支持生成包含大量数据的下拉框。 // $info 为下拉框的数数据&#xff0c;[男,女,保密] function exportDataSel…...

【重构谷粒商城12】npm快速入门

重构谷粒商城12&#xff1a;npm快速入门 前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff0c;快速进阶…...

【Pandas】pandas DataFrame bool

Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型DataFrame.convert_dtypes([infer_objects, …])用于将 DataFrame 中的数据类型转换为更合适的类型DataFrame.infer_objects([copy])用于尝试…...

Django 在同一域名下使用 NGINX 服务器运行 Django 和 WordPress

在本文中&#xff0c;我们将介绍如何使用 NGINX 服务器在同一域名下同时运行 Django 和 WordPress。我们将使用反向代理和URL重写来实现这一目标。 1. 安装和配置 NGINX 首先&#xff0c;我们需要在服务器上安装并配置 NGINX。请根据您的操作系统类型和版本的要求&#xff0c;…...

LeetCode Hot100 刷题笔记(2)—— 子串、普通数组、矩阵

目录 前言 一、子串 1. 和为 K 的子数组 2. 滑动窗口最大值 3. 最小覆盖子串 二、普通数组 4. 最大子数组和 5. 合并区间 6. 轮转数组 7. 除自身以外数组的乘积 8. 缺失的第一个正数 三、矩阵 9. 矩阵置零 10. 螺旋矩阵 11. 旋转图像 12. 搜索二维矩阵 II 前言 一、子串&#…...

游戏引擎学习第213天

回顾并为今天的工作做准备 今天我们将继续在调试界面上进行一些编码工作。我们已经完成了很多内容&#xff0c;并且昨天完成了与游戏的集成&#xff0c;主要是在两个系统之间统一了用户界面。 今天的目标是进入调试界面&#xff0c;进一步整理并完善它&#xff0c;以便我们能…...

使用 Django 构建 Web 应用程序:症状检测 - 分步指南

使用 Django 构建 Web 应用程序:症状检测 - 分步指南 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 使用 Django 构建 Web 应用程序:症状检测 - 分步指南先决条件第 1 步:设置 …...

oracle将varchar2 转为clob类型存储。 oracle不支持直接使用sql,将 varchar2 到clob的类型转换,需要下面操作

将一个现有表中的 VARCHAR2 列数据迁移到一个 CLOB 列的过程。以下是对每一步操作的说明&#xff1a; 1. 添加一个新的 CLOB 类型列 首先&#xff0c;向表中添加一个新的 CLOB 类型的列。这个列将用来存储原本的 VARCHAR2 数据。 ALTER TABLE your_table ADD (new_column CL…...

React 之 Redux 第三十一节 useDispatch() 和 useSelector()使用以及详细案例

使用 Redux 实现购物车案例 由于 redux 5.0 已经将 createStore 废弃&#xff0c;我们需要先将 reduxjs/toolkit 安装一下&#xff1b; yarn add reduxjs/toolkit// 或者 npm install reduxjs/toolkit使用 vite 创建 React 项目时候 配置路径别名 &#xff1a; // 第一种写法…...

RHCSA Linux系统 vim 编辑器

1.使用 vi/vim 编辑文件 [rootlocalhost ~]# vim /etc/passwd 默认进入命令模式 2.命令模式下的常用快捷键 (1) 光标跳转快捷键 &#xff08;2&#xff09;复制、粘贴、删除 3&#xff0e;编辑模式 4.末行模式 &#xff08;1&#xff09;查找关键字替换 &#xff08;2&…...

ABAP小白开发操作手册+(十)验证和替代——下

目录 一、前言 二、替代步骤详解 1、新建替换 2、新建步骤 3、创建先决条件 4、补充替换 5、ZRGGBS000 三、传输请求 四、DEBUG 一、前言 本章内容分为上下两篇&#xff0c;包括验证和替代&#xff0c; 上篇&#xff1a;验证步骤、传输验证请求、DEBUG 下篇&#xf…...

鸿蒙小案例---心情日记

效果演示 代码实现 import { router, window } from kit.ArkUIEntry Component struct Index {async aboutToAppear(): Promise<void> {let w await window.getLastWindow(getContext())w.setWindowSystemBarProperties({statusBarColor: #00C6C3,statusBarContentColo…...

一种单脉冲雷达多通道解卷积前视成像方法【论文阅读】

一种单脉冲雷达多通道解卷积前视成像方法-李悦丽-2007 1. 论文的研究目标与实际意义1.1 研究目标1.2 实际问题与产业意义2. 论文提出的思路、方法及模型2.1 多通道解卷积(MCD)技术的核心思想2.1.1 数学模型与公式推导2.1.2 针对单脉冲雷达的改进2.2 方法与传统技术的对比3. 实…...

React中使用dnd-kit实现拖拽排序

使用dnd-kit实现拖拽排序 效果展示 实现源码 安装依赖 dad-kit github地址 yarn add dnd-kit/core dnd-kit/sortable dnd-kit/utilities dnd-kit/modifiers这几个包的作用 dnd-kit/core&#xff1a;核心库&#xff0c;提供基本的拖拽功能。dnd-kit/sortable&#xff1a;扩…...

深度学习总结(3)

数据批量的概念 通常来说&#xff0c;深度学习中所有数据张量的第一个轴&#xff08;也就是轴0&#xff0c;因为索引从0开始&#xff09;都是样本轴[samples axis&#xff0c;有时也叫样本维度&#xff08;samples dimension&#xff09;​]​。深度学习模型不会一次性处理整个…...

Android Studio Narwhal | 2025.1.1新功能

Android Studio 中的 Gemini 支持多模式图像附件 现在&#xff0c;您可以在 Android Studio 中将图像直接附加到 Gemini 提示中。您可以即时获取复杂技术图表的洞察&#xff0c;或使用设计模型生成相应的代码框架。这种将视觉环境无缝集成到 AI 辅助工作流程中的设计方式&…...

XML语法指南——从入门到精通

1、引言 XML&#xff08;可扩展标记语言&#xff09;是一种用于存储和传输数据的标记语言&#xff0c;它被设计为具有自我描述性且易于理解。本文将全面介绍XML的语法规则&#xff0c;包括元素、属性、命名规则、转义字符等核心概念。 2、XML文档基本结构 一个完整的XML文档…...

利用高阶函数实现AOP

如大家所熟悉的&#xff0c;AOP&#xff08;面向切面编程&#xff09;的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来&#xff0c;这些跟业务逻辑无关的功能通常包括日志统计、安全控制、异常处理等。 把这些功能抽离出来之后&#xff0c;再通过“动态织入”的方式掺…...

原生SSE实现AI智能问答+Vue3前端打字机流效果

实现流程&#xff1a; 1.用户点击按钮从右侧展开抽屉&#xff08;drawer&#xff09;&#xff0c;打开模拟对话框 2.用户输入问题&#xff0c;点击提问按钮&#xff0c;创建一个SSE实例请求后端数据&#xff0c;由于SSE是单向流&#xff0c;所以每提一个问题都需要先把之前的实…...

windows11下pytorch(cpu)安装

先装anaconda 见最下方 Pytorch 官网&#xff1a;PyTorch 找到下图&#xff08;不要求版本一样&#xff09;&#xff08;我的电脑是集显&#xff08;有navdia的装gpu&#xff09;&#xff0c;装cpu&#xff09; 查看已有环境列表 创建环境 conda create –n 虚拟环境名字(…...

C++【string类】(一)

string类 1.为什么要学string&#xff1f;2.标准库类型的string类2.1 string类的构造2.2string类的析构2.3读写string类2.4string类的赋值重载2.5string的遍历 1.为什么要学string&#xff1f; 在C语言中字符出串是以‘/0’结尾的一些字符的结合&#xff0c;为了操作方便&…...

yarn:error Error: certificate has expiredERR_OSSL_EVP_UNSUPPORTED解决

yarn&#xff1a;error Error: certificate has expired 报错 error Error: certificate has expiredat TLSSocket.onConnectSecure (node:_tls_wrap:1679:34)at TLSSocket.emit (node:events:519:28)at TLSSocket._finishInit (node:_tls_wrap:1078:8)at ssl.onhandshakedon…...

Git Cherry-pick:核心命令、实践详解

Git Cherry-pick&#xff1a;核心命令、实践详解 一、Cherry-pick 1. 简介 在多分支协作开发中&#xff0c;我们常常只想把某个分支上的单个或若干次提交&#xff0c;合并到另一个分支&#xff0c;而不需要合并整个分支。Git 提供的 cherry-pick 命令&#xff0c;正是为此而…...

ffmpeg播放音视频流程

文章目录 &#x1f3ac; FFmpeg 解码播放流程概览&#xff08;以音视频文件为例&#xff09;1️⃣ 创建结构体2️⃣ 打开音视频文件3️⃣ 查找解码器并打开解码器4️⃣ 循环读取数据包&#xff08;Packet&#xff09;5️⃣ 解码成帧&#xff08;Frame&#xff09;6️⃣ 播放 / …...

OSPF的数据报文格式【复习篇】

OSPF协议是跨层封装的协议&#xff08;跨四层封装&#xff09;&#xff0c;直接将应用层的数据封装在网络层协议之后&#xff0c;IP协议包中协议号字段对应的数值为89 OSPF的头部信息&#xff1a; 所有的数据共有的信息字段 字段名描述版本当前OSPF进程使用的版本&#xff08;…...

Spark大数据分析与实战笔记(第四章 Spark SQL结构化数据文件处理-04)

文章目录 每日一句正能量第4章 Spark SQL结构化数据文件处理章节概要4.4 RDD转换DataFrame4.4.1 反射机制推断Schema4.4.2 编程方式定义Schema 每日一句正能量 一个人若想拥有聪明才智&#xff0c;便需要不断地学习积累。 第4章 Spark SQL结构化数据文件处理 章节概要 在很多情…...

设计模式 --- 状态模式

状态模式​​是一种​​行为型设计模式​​&#xff0c;允许对象在内部状态改变时动态改变其行为​​&#xff0c;使对象的行为看起来像是改变了。该模式通过将状态逻辑拆分为独立类​​&#xff0c;消除复杂的条件分支语句&#xff0c;提升代码的可维护性和扩展性。 状态模式的…...

将外网下载的 Docker 镜像拷贝到内网运行

将外网下载的 Docker 镜像拷贝到内网运行&#xff0c;可以通过以下步骤实现&#xff1a; 一、在有外网访问权限的机器上操作 下载镜像 使用docker pull命令下载所需的镜像。例如&#xff0c;如果你需要下载一个名为nginx的镜像&#xff0c;可以运行以下命令&#xff1a;docke…...

Seq2Seq - GRU补充讲解

nn.GRU 是 PyTorch 中实现门控循环单元&#xff08;Gated Recurrent Unit, GRU&#xff09;的模块。GRU 是一种循环神经网络&#xff08;RNN&#xff09;的变体&#xff0c;用于处理序列数据&#xff0c;能够更好地捕捉长距离依赖关系。 ⭐重点掌握输入输出部分输入张量&#…...

从0到1构建工具站 - day6 (在线编程工具-docker)

从0到1构建工具站 网页在线编程工具构建&#xff08;php、go、python&#xff09;搜集其他在线编程网站构建php8运行环境Dockerfiledocker-compose.yaml 构建python运行环境Dockerfiledocker-compose.yml 核心调用python的docker-sdk包执行命令执行文件流程执行命令流程pythonp…...

C++面向对象编程优化实战:破解性能瓶颈,提升应用效率

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开发技术&#xff0c;能熟练应用常用数据库SQL server,Oracle…...

JavaWeb 课堂笔记 —— 06 Maven

本系列为笔者学习JavaWeb的课堂笔记&#xff0c;视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程&#xff0c;实现javaweb企业开发全流程&#xff08;涵盖SpringMyBatisSpringMVCSpringBoot等&#xff09;》&#xff0c;章节分布参考视频教程&#xff0c;为同样学习…...

【Linux】网络层协议 IP

网络层协议 IP 一. 基本概念二. IP 协议格式三. 网段划分 (重点)1. 传统方法2. 子网掩码 四. 特殊 IP 地址五. IP 地址的数量限制六. 私有 IP 地址和公网 IP 地址七. 运营商1. 基本网络情况2. 全球网络情况 八. 路由九. IP 报文的分片和组装 网络层&#xff1a;在复杂的网络环境…...

嵌入式系统中如何构建事件响应架构

在复杂的嵌入式系统中,串口、BLE、定时器、中断等多种事件源并存,如何高效地统一调度这些异步事件,是系统稳定性和可维护性的关键。本文将结合 BLE 系统架构的经验,讲解如何构建一个通用的事件响应架构。 🧩 一、什么是事件响应架构? 事件响应架构(Event-Driven Archi…...

Flutter报错:Warning: CocoaPods is installed but broken

最近在做Flutter开发&#xff0c;在跑iOS的时候报错&#xff1a; 结论&#xff1a;CocoaPods安装有问题 解决办法&#xff1a; 先卸载本地CocoaPods&#xff0c;然后重新安装 查看当前版本 gem list | grep cocoapods执行卸载 sudo gem uninstall cocoapods直到 which -a…...

JdbcTemplate基本使用

JdbcTemplate概述 它是spring框架中提供的一个对象&#xff0c;是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和MbernateTemplate&#xff0c;操作nosql数据库的RedisTemplate&#xff0c;操作消息队列的…...

地图服务热点追踪:创新赋能,领航出行与生活

在数字化时代&#xff0c;地图服务早已超越了传统的导航范畴&#xff0c;成为智能出行、生活服务乃至应急救援等多领域的关键支撑。近期&#xff0c;地图服务领域热点不断&#xff0c;从技术创新到应用拓展&#xff0c;每一次突破都在重塑我们与世界交互的方式。本文将深入剖析…...