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

NIFI 使用HTTP 作为数据源接收数据

1.概述

在NIFI 中,可以 ListenHTTP 组件 启动一个HTTP服务,通过HTTP 服务接收 客户端 发送的信息,后续可以增加处理器,对请求进行处理。
我做了一个示例

  1. 通过 ListenHTTP 接收信息
  2. 通过 ExecuteGroovyScript 对数据进行处理
  3. 通过 PutFile 对数据进行验证,查看数据是否有效

2.配置

2.1 配置ListenHTTP 组件

image

配置后,我们 就可以通过 将数据 post 到 http://ip:8080/data 上进行数据接收

2.2 ExecuteGroovyScript 处理脚本

import groovy.json.JsonSlurper
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.json.JsonMapper
import com.fasterxml.jackson.core.JsonGenerator
import org.apache.commons.io.IOUtils
import java.nio.charset.StandardCharsetsdef flowFile = session.get()
if (!flowFile) returntry {def text = ''session.read(flowFile, { inputStream ->text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)} as InputStreamCallback)// 用 Groovy 解析 JSON(支持宽松语法)def jsonSlurper = new JsonSlurper()def data = jsonSlurper.parseText(text)data['age'] = 20// 使用 Jackson 序列化,不转义非 ASCII 字符(保留中文)def mapper = new ObjectMapper()mapper.getFactory().setCodec(mapper)// 关键:禁用 Unicode 转义def writer = mapper.writer().without(JsonGenerator.Feature.ESCAPE_NON_ASCII)def updatedJson = writer.writeValueAsString(data)flowFile = session.write(flowFile, { outputStream ->outputStream.write(updatedJson.getBytes(StandardCharsets.UTF_8))} as OutputStreamCallback)flowFile = session.putAttribute(flowFile, "mime.type", "application/json; charset=utf-8")session.transfer(flowFile, REL_SUCCESS)} catch (Exception e) {log.error("处理FlowFile时发生错误", e)session.transfer(flowFile, REL_FAILURE)
}

这个代码的作用是读取 上游的数据,并通过脚本修改这个数据,再投放给下游。

2.3 配置 PutFile

这里只需要配置一下执行路径就可以了

image

2.4 测试

我们使用 apipost 工具给 http 服务发一个请求

image

我们可以查看生成的文件内容

{"name":"张飞","age":20},我们可以操作这个JSON.

http://www.jsqmd.com/news/34543/

相关文章:

  • CSPS 2025 游寄 / 反思
  • FCN-ResNet18 语义分割完整实现详解
  • 《代码大全 2》观后感(六):错误处理 —— 代码的 “安全气囊”
  • 在龟骨的第二次课的讲解
  • P5610 解题报告
  • fcitx5里有趣的东西
  • 自定义MCP Server
  • 英语_错题集_25-11
  • Ai元人文随想:守护时光的印记
  • 浅谈模拟系列算法
  • 第三十六篇
  • Ai元人文随想:三值纠缠中的人文关怀
  • R语言实现多组样本两两t检验的完整教程
  • 实用指南:TensorFlow深度学习实战(40)——图神经网络(GNN)
  • 2023QDEZ男人八题赛后总结
  • 学习差的孩子,有必要用学习机吗?
  • CSP-S2023游记
  • 2025苏州驾驶证培训推荐榜:摩托车驾驶证培训、A2驾驶证培训、大车A1驾驶证培训、大车B2驾驶证培训,省心学车选这些
  • 2025佛山钢管厂家推荐榜:防腐钢管、大口径钢管、螺旋钢管工厂采购选型不踩坑
  • 不谈离散数学基本定理
  • 现代Linux网络命令简介
  • 深谈王书童变换
  • 众所周知,高中课内物理需要解微分方程
  • 语文诗歌赏析好题集萃(纯纯的学术向)
  • 11.7模拟赛
  • code first 常用命令
  • 动态规划学习/复习笔记
  • 系统设计与分布式算法实战指南
  • SDOI 2024游记兼退役游记
  • STM32G474单片机开发入门(六)定时器TIMER详解及实战含源码 - 教程