Apache NIFI InvokeHTTP处理器实战:从HTTP请求到API集成的完整指南
1. 项目概述为什么在NIFI里用InvokeHTTP如果你正在用Apache NIFI构建数据流迟早会遇到一个场景需要从某个Web服务、API接口或者一个简单的网页上拉取数据或者反过来把处理好的数据推送到某个HTTP端点。这时候你工具箱里的首选武器十有八九就是InvokeHTTP这个处理器。简单来说InvokeHTTP就是NIFI里的“瑞士军刀”式HTTP客户端。它封装了HTTP协议通信的复杂性让你能通过拖拽配置的方式轻松完成GET、POST、PUT、DELETE等各种HTTP请求并且能优雅地处理响应。无论是调用一个REST API获取天气数据向一个Webhook发送告警消息还是定期爬取某个公开页面的信息InvokeHTTP都是核心执行单元。我见过不少刚开始接触NIFI的朋友觉得它就是个配置化的ETL工具处理数据库和文件还行一碰到需要和外部HTTP服务打交道就有点发怵想着是不是要自己写个脚本再嵌进来。其实完全不用InvokeHTTP的能力比你想象的要强大和稳定得多。关键在于你得理解它的配置逻辑和“脾气”这能帮你避开很多坑比如令人头疼的unexpected status 502 bad gateway或者401 unauthorized这类错误。接下来我就结合自己踩过的坑和实战经验带你彻底搞懂怎么用好它。2. InvokeHTTP处理器核心配置全解析InvokeHTTP处理器的配置项看起来不少但理清脉络后就会发现非常直观。我们可以把这些配置分为几个核心部分请求目标定义、请求方法与会话、请求内容定制、以及响应处理策略。理解每一部分的含义是构建稳定HTTP数据流的基础。2.1 请求目标与基础连接配置这是发起请求的起点主要告诉处理器“往哪里发请求”以及“如何建立连接”。HTTP Method这是最重要的配置之一决定了请求的类型。最常用的是GET和POST。GET用于从服务器检索数据。参数通常附加在URL后面查询字符串。在NIFI中你可以用Expression Language动态生成URL。POST用于向服务器提交数据如表单提交或上传JSON/XML。提交的内容放在请求体Request Body中。其他如PUT、DELETE、PATCH等也支持用于符合RESTful规范的API调用。Remote URL请求的目标地址。这里必须是一个完整的URL以http://或https://开头。一个新手常犯的错误就是忘记协议头导致连接失败。这个属性支持强大的NIFI表达式语言EL这意味着你可以从流文件的属性比如上游处理器提取的ID、时间戳中动态构造URL。例如http://api.example.com/data/${filename}。SSL Context Service当你的Remote URL是https://时这个服务就至关重要了。它用于配置SSL/TLS连接所需的信任库和密钥库。如果目标服务器使用自签名证书或需要客户端证书认证你必须在这里配置一个有效的SSL Context Service。否则你可能会遇到SSL handshake failed之类的错误。Connection Timeout和Read Timeout这两个超时设置是稳定性的守护神。Connection Timeout建立TCP连接的超时时间。如果网络不通或目标服务器端口未开放超过这个时间就会失败。对于内网服务可以设短些如10秒公网API建议设长些如30秒。Read Timeout从连接建立成功到收到完整响应数据的超时时间。如果服务器处理慢或者返回的数据流很大需要适当调大这个值否则可能收到不完整的响应就超时断开。注意对于生产环境务必为重要的外部服务配置合理的超时时间和重试机制通过处理器的retry关系或上游的循环处理器。盲目使用默认值是线上数据流中断的常见原因之一。2.2 请求头、Cookie与身份认证HTTP请求不仅仅是地址和方法Headers和Cookies承载了大量的上下文信息尤其是认证。Attributes to Send as HTTP Headers这是一个非常灵活的功能。你可以指定将流文件的哪些属性作为HTTP请求头发送。格式通常为属性名的正则表达式匹配。例如设置值为User-Agent|Content-Type那么当前流文件中名为User-Agent和Content-Type的属性值就会被自动添加为对应的HTTP头。这对于传递API密钥如X-API-Key、认证令牌如Authorization: Bearer ...、内容类型Content-Type: application/json等至关重要。Basic Authentication Username/Password如果目标API使用HTTP Basic认证可以直接在这里填写用户名和密码。处理器会自动计算并添加Authorization: Basic ...头。但请注意密码会以明文形式存储在NIFI的配置中对于敏感信息强烈建议使用NIFI的Sensitive Properties功能或从外部安全地获取凭证。Cookie Specification处理HTTP Cookie的策略。STANDARD是最常用的它会自动管理从服务器返回的Set-Cookie头并在后续请求中携带合适的Cookie模拟浏览器行为。这对于需要维护会话Session的网站交互非常有用。Proxy Configuration如果你的NIFI实例部署在需要经过代理服务器才能访问外网的环境这里需要配置代理的主机、端口、用户名和密码。否则所有对外部Remote URL的请求都会因网络不通而失败错误信息可能类似于connection timed out。2.3 请求体Body与参数传递对于POST、PUT等方法你需要决定发送什么数据。Send Message Body这个选项决定了是否将流文件的内容Content作为HTTP请求体发送。通常如果你要发送JSON、XML或表单数据需要勾选此项。此时流文件里存储的就是你要提交的原始数据。Content-Type当发送消息体时必须正确设置此属性通过Attributes to Send as HTTP Headers设置Content-Type头。它告诉服务器如何解析你发送的数据。常见的值有application/json发送JSON格式数据。application/x-www-form-urlencoded发送表单格式数据键值对如nameJohnage30。multipart/form-data用于文件上传。text/xml或application/xml发送XML数据。Send Body as Byte Array一个高级选项。默认情况下NIFI会以流的方式发送内容。但在某些特定场景下如与某些旧式服务交互可能需要将整个内容先读入内存作为字节数组发送。除非明确需要否则保持默认不勾选以获得更好的性能。对于GET请求的参数GET请求的参数通常以查询字符串形式附加在URL后如?key1value1key2value2。你可以在Remote URL的EL表达式中动态构建这部分例如http://api.example.com/search?q${search.term}page${page.number}。3. 实战演练构建GET与POST请求流程光说不练假把式我们通过两个最常见的场景来看看InvokeHTTP在真实数据流中如何配置和使用。3.1 场景一定时GET请求抓取API数据假设我们需要每小时从某个公开天气API例如http://api.weather.com/v1/forecast?city${city}拉取一次数据并将返回的JSON保存到文件。生成调度与请求参数首先使用GenerateFlowFile处理器设置调度时间为1 hour。在自定义属性中添加一个属性city值为Beijing。这个处理器会定期生成一个空的流文件但带有cityBeijing的属性。配置InvokeHTTPHTTP MethodGETRemote URLhttp://api.weather.com/v1/forecast?city${city}。这里利用了EL表达式将上一步的city属性值动态注入URL。Attributes to Send as HTTP Headers可以设置User-Agent为NiFi-DataIngest/1.0这是一个好习惯让API提供方知道请求来源。Connection Timeout30 secRead Timeout60 sec考虑到API响应可能较慢。处理响应InvokeHTTP成功后会输出到success关系。此时流文件的内容Content就是API返回的JSON字符串。你可以直接用PutFile处理器将其写入本地目录或者用EvaluateJsonPath提取部分字段后再进行后续处理。错误处理将InvokeHTTP的failure和retry关系连接到一个LogAttribute处理器记录下错误时的状态码、响应信息等便于排查。例如如果API返回502 Bad Gateway你可以在日志中看到具体的错误信息。实操心得对于周期性GET任务在GenerateFlowFile里设置调度比用Cron驱动处理器更简单直观。另外将目标URL或API密钥等配置放在处理器属性中而非硬编码在流文件内容里利用EL表达式动态获取能使流程更灵活、更易于维护。3.2 场景二构建POST请求提交JSON数据现在假设我们有一个流程需要将处理后的用户事件数据以JSON格式POST到一个内部的分析平台APIhttps://analytics.internal.com/api/event并且该API要求使用Bearer Token认证。准备数据假设上游的ReplaceText或JoltTransformJSON处理器已经将数据转换成了符合API要求的JSON格式并存储在流文件内容中。配置InvokeHTTPHTTP MethodPOSTRemote URLhttps://analytics.internal.com/api/eventSSL Context Service如果该内部API使用正规CA证书NIFI默认的SSL服务可能就够用。如果是自签名需要配置一个信任该证书的SSL Context Service。Attributes to Send as HTTP Headers这里需要设置两个关键头。你可以通过一个UpdateAttribute处理器在调用InvokeHTTP之前为流文件添加两个属性Content-Type:application/jsonAuthorization:Bearer ${bearer.token}。其中bearer.token这个属性的值可以从NIFI的Variable Registry或外部安全存储中通过EL表达式获取避免硬编码。在InvokeHTTP的配置中将Attributes to Send as HTTP Headers设置为Content-Type|Authorization。Send Message Body必须勾选。这样流文件中的JSON内容才会被作为请求体发送。解析响应API处理成功后通常会返回一个包含状态如{status: success, id: 12345}的JSON。你可以接着使用EvaluateJsonPath从响应体中提取这个id并将其设置为流文件的新属性供后续流程使用比如记录到日志或数据库。处理非2xx响应不是所有POST都会成功。API可能返回400 Bad Request你的数据格式不对、401 UnauthorizedToken失效或5xx服务器错误。务必配置好InvokeHTTP的failure关系处理逻辑。例如对于401可以路由到一个发送告警的流程对于429 Too Many Requests限流可以路由到一个带有指数退避重试策略的循环中。4. 高级特性与性能调优当你的流程从demo走向生产处理百万级的数据流时一些高级配置和性能考量就变得必不可少。4.1 连接池管理与并发请求InvokeHTTP内部使用Apache HttpClient它支持连接池。合理配置连接池可以大幅提升性能。Maximum Connections Per Route到同一个主机host的最大并发连接数。默认是2。如果你的流程需要高频调用同一个API适当增加这个值例如10-20可以避免连接等待提升吞吐量。但不要设置过大以免对目标服务器造成压力。Maximum Total Connections处理器全局的最大连接数。如果流程需要同时调用多个不同的HTTP服务这个值应该大于所有路由的Maximum Connections Per Route之和。Idle Connection Expiration连接在池中空闲多久后被关闭。默认是30秒。对于需要长连接保持的场景可以适当延长对于连接不稳定的环境可以缩短。调优建议通过NIFI的监控界面Bulletin Board, Provenance观察处理器的活跃任务数和排队情况。如果发现InvokeHTTP经常有任务排队等待执行而目标服务器能力允许就可以考虑增加连接数。同时监控目标服务器的负载确保你的调用不会成为对方的“攻击”。4.2 表达式语言EL的妙用NIFI的EL是InvokeHTTP灵活性的灵魂。除了前面提到的动态URL还可以动态Header根据流文件内容决定发送不同的Header。例如Authorization: Bearer ${literal(${jwt.token})}但更安全的做法是从一个DistributedMapCacheClient服务中实时获取最新的Token。条件请求结合RouteOnAttribute可以基于某些属性值决定是否发起请求或者发起不同类型的请求。错误重试与退避虽然InvokeHTTP有自己的retry关系但更复杂的重试逻辑如指数退避可以通过EL结合Loopback处理器来实现。例如在流文件中设置一个retry.count属性每次失败递增并计算下一次重试的等待时间。4.3 文件上传与Multipart请求有时你需要上传文件。这需要构建multipart/form-data请求。准备文件部分流文件的内容就是你要上传的文件原始字节。设置Headers通过UpdateAttribute为流文件添加必要的头信息属性Content-Type:multipart/form-data; boundary----NiFiBoundary。boundary是一个分隔符需要唯一。实际上更常见的做法是不直接设置Content-Type头而是利用InvokeHTTP处理器的另一个属性。使用“Form Data Name”属性在InvokeHTTP处理器的高级配置中有一个Form Data Name属性。如果你设置了此属性例如file处理器会自动将流文件内容构建为一个multipart/form-data请求体并生成正确的Content-Type头包含boundary。你只需要在Attributes to Send as HTTP Headers中确保不覆盖这个自动生成的Content-Type即可。添加其他表单字段如果需要同时上传文件和其他字段如filenamereport.pdf可以在调用InvokeHTTP之前使用UpdateAttribute添加属性并且这些属性的名字也会被处理器自动识别并编码为multipart的一部分。不过对于复杂的multipart请求有时使用ExecuteStreamCommand调用curl反而更直观。5. 故障排查与常见问题实录即使配置再小心在生产环境中与各种HTTP服务打交道也难免遇到问题。下面是我总结的一些典型错误和排查思路。5.1 4xx客户端错误401 Unauthorized / 403 Forbidden检查认证配置首先确认Basic Authentication的用户名密码是否正确或者通过Header发送的API Key、Bearer Token是否有效且未过期。错误信息authentication fails, your api key is invalid就是典型提示。检查URL和权限确认账号有访问该URL的权限。有时403是因为IP白名单限制或资源权限不足。Cookie问题如果依赖Cookie维持会话检查Cookie Specification是否设置为STANDARD并确保之前的请求成功设置了Cookie。404 Not Found检查Remote URL这是最常见的原因。仔细核对URL的每一个字符包括协议头http/https、主机名、端口、路径。使用LogAttribute打印出发送前的流文件属性确认EL表达式解析出的最终URL是什么。400 Bad Request检查请求体格式确认Content-Type头与发送的数据格式匹配。发送JSON却设置了text/plain服务器就无法解析。检查数据有效性你的JSON或XML格式可能不正确存在语法错误。可以先用ValidateRecord或在线JSON校验工具检查数据。检查参数对于GET请求检查URL中的查询参数是否正确编码。特殊字符如空格、需要使用EL函数urlEncode()处理。5.2 5xx服务器错误502 Bad Gateway / 503 Service Unavailable这是目标服务器或代理的问题通常与NIFI配置无关。错误信息如unexpected status 502 bad gateway: unknown error表明请求到达了网关如Nginx但后端服务无响应或出错。排查动作首先确认目标服务本身是否健康直接通过curl或浏览器测试。其次检查网络连通性和防火墙规则。最后如果服务有负载均衡或代理可能是那一层出了问题。在NIFI中的应对配置处理器的retry关系并设置合理的重试间隔和次数。对于间歇性故障重试可能解决问题。504 Gateway Timeout增大Read Timeout服务器处理时间过长超过了网关或InvokeHTTP自身的Read Timeout设置。尝试适当增加Read Timeout值。优化请求检查是否发送了过大的数据体或者请求本身是否过于复杂导致服务器处理超时。5.3 连接与超时错误Connection timed out / Connection refused检查网络这是最基本的网络层问题。确认NIFI服务器能ping通目标主机且目标端口是开放的可以用telnet测试。检查代理如果环境需要代理确认Proxy Configuration已正确设置。检查DNSRemote URL中的主机名是否能正确解析。可以在NIFI服务器上使用nslookup或dig命令验证。SSL/TLS握手错误检查SSL Context Service对于https地址这是首要怀疑对象。确认SSL服务配置正确特别是信任库Truststore是否包含了目标服务器证书的签发CA。自签名证书需要被显式地添加到信任库中。协议/密码套件不匹配较新版本的服务器可能禁用了老旧的TLS协议或密码套件。确保NIFI使用的JRE版本支持必要的协议如TLSv1.2。5.4 调试技巧与日志分析当问题不明确时系统地调试是关键隔离测试使用GenerateFlowFile创建一个最简单的流程手动设置好所有属性直接调用InvokeHTTP。排除上游复杂逻辑的干扰。记录请求详情在InvokeHTTP前使用LogAttribute记录所有相关属性URL、Headers等。开启处理器的debug或trace级别日志需要调整NIFI的logback.xml可以看到更详细的HTTP客户端交互信息。模拟对比使用curl命令或Postman等工具尝试复现NIFI发送的请求。如果curl成功而NIFI失败对比两者的请求头、请求体有何差异。curl的-v参数可以打印出详细的请求和响应头。检查Provenance数据NIFI的Provenance功能会记录每个流文件的事件。查看InvokeHTTP成功或失败事件的详情里面通常包含了请求的URL、方法、以及服务器返回的状态码和响应体片段如果配置了记录这是非常宝贵的诊断信息。我个人在排查一个棘手的400错误时就是通过对比Provenance里记录的请求头和curl手动发送的请求头发现NIFI自动添加了一个Content-Length: 0的头而服务器对此有特殊校验。通过在UpdateAttribute中显式设置一个正确的Content-Length属性并发送最终解决了问题。这个经验告诉我对于行为古怪的API控制每一个发出的Header细节有时是必要的。

相关新闻

Kubernetes上部署高可用Nacos集群:生产级架构设计与实战

Kubernetes上部署高可用Nacos集群:生产级架构设计与实战

1. 项目概述与核心价值最近在搞微服务架构的落地,服务注册与发现中心是绕不开的一环。Nacos 作为阿里开源的一站式动态服务发现、配置管理和服务管理平台,凭借其易用性和强大的功能,已经成了很多团队的首选。但在生产环境,单点部署…

2026/8/13 6:17:52 阅读更多 →
32元/月低成本搭建《幻兽帕鲁》私服:轻量服务器一键部署与深度调优指南

32元/月低成本搭建《幻兽帕鲁》私服:轻量服务器一键部署与深度调优指南

1. 项目概述:低成本开服背后的技术与市场逻辑最近《幻兽帕鲁》这款游戏火得一塌糊涂,身边不少朋友都喊着要一起玩。但官服人多卡顿,租用大厂的游戏服务器又动辄上百元一个月,对只是想和小伙伴们图个乐子的玩家来说,成本…

2026/8/13 6:17:50 阅读更多 →
YOLOv8模型调优实战:从数据准备到部署优化的全流程指南

YOLOv8模型调优实战:从数据准备到部署优化的全流程指南

1. 项目概述:从“炼丹”到“量产”的模型调优全流程 搞计算机视觉的朋友,对YOLO系列模型肯定不会陌生。从YOLOv5的横空出世,到如今YOLOv8的全面升级,这个系列以其在速度和精度间取得的绝佳平衡,成为了目标检测领域事实…

2026/8/13 6:16:50 阅读更多 →

最新新闻

大模型实战指南:从环境部署、LoRA微调到RAG应用开发

大模型实战指南:从环境部署、LoRA微调到RAG应用开发

1. 项目概述:从理论到实战的跨越最近几年,大模型的热度居高不下,从最初的文本生成到现在的多模态理解,技术迭代的速度让人应接不暇。但很多朋友,包括我自己在初期,都面临一个尴尬的局面:看了无数…

2026/8/13 7:02:13 阅读更多 →
技术经纪人如何提升成果转化效率与服务专业性?

技术经纪人如何提升成果转化效率与服务专业性?

观点作者:科易网-国家科技成果转化(厦门)示范基地 近年来,随着我国科技创新能力持续提升,科技成果转化已成为推动产业升级和经济高质量发展的关键抓手。然而,技术经纪人作为连接科研与产业的重要桥梁&#…

2026/8/13 7:02:13 阅读更多 →
高校科研成果转化过程中如何实现供需精准匹配?

高校科研成果转化过程中如何实现供需精准匹配?

观点作者:科易网-国家科技成果转化(厦门)示范基地 在当前科技创新加速发展的背景下,高校科研成果转化被普遍认为是推动科技与经济深度融合的重要桥梁。然而,现实中高校科研成果的转化率却长期处于较低水平,…

2026/8/13 7:02:13 阅读更多 →
为AI代理构建安全执行环境:Docker沙箱实战指南

为AI代理构建安全执行环境:Docker沙箱实战指南

这次我们来看一个专门为 AI 代理设计的 Docker 沙箱项目。它的核心目标很直接:为那些需要执行不确定或潜在风险任务的 AI 代理,提供一个即用即毁、完全隔离的运行时环境。想象一下,你的 AI 助手需要联网搜索、执行代码、处理未知文件&#xf…

2026/8/13 7:02:12 阅读更多 →
全面解析遂宁市住房和城乡建设局网站功能及市民办事指南助力安居梦想

全面解析遂宁市住房和城乡建设局网站功能及市民办事指南助力安居梦想

在这个快节奏的城市生活里,我们每天穿梭在钢筋水泥构建的森林中,渴望的不仅仅是一个遮风挡雨的空间,更是一份踏实与安心。说到房子,无论是买房、建房,还是装修、物业纠纷,背后都牵涉着复杂的政策和繁琐的手续。对于咱们普通老百姓来说,这些往往像是一团乱麻,理不清也摸…

2026/8/13 7:02:12 阅读更多 →
大模型实战:从LoRA微调到RAG应用开发的全链路指南

大模型实战:从LoRA微调到RAG应用开发的全链路指南

1. 为什么我选择参加“书生浦语大模型实战营”?最近几个月,我身边搞技术的朋友,无论是做算法的、做后端的,还是做产品的,聊天的话题总绕不开“大模型”这三个字。从年初的“ChatGPT还能火多久”的讨论,到年…

2026/8/13 7:01:12 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →