gpt4 book ai didi

apache-nifi - Nifi 多部分形式

转载 作者:行者123 更新时间:2023-12-04 15:49:54 29 4
gpt4 key购买 nike

我正在尝试将一个非常简单的多部分表单发布到 api。我在 apache Nifi 中看不到任何这样做的方法,因为它似乎只有一个表单数据输入。在这里和 Nifi 论坛上似乎有很多关于此的现有问题,但没有一个有任何答案。

我正在尝试使用 invokehttp。在将多个表单数据放入 invokehttp 之前,有没有办法构建它?

最佳答案

您可以使用 ExecuteGroovyScript使用以下代码构建 multipart/form-data 的处理器:

@Grab(group='org.apache.httpcomponents', module='httpmime', version='4.5.9')

import org.apache.http.entity.mime.MultipartEntityBuilder
import org.apache.http.entity.ContentType

def ff = session.get()
if(!ff)return

def multipart

ff.write{streamIn, streamOut->
multipart = MultipartEntityBuilder.create()
//specify multipart entries here
.addTextBody( "username", ff.filename ) //get from flowfile attribute "filename"
.addTextBody( "secret", new File("./README").getText("UTF-8") ) //add text body from file
.addBinaryBody( "avatar", streamIn, ContentType.DEFAULT_BINARY, ff.filename ) //add flowfile content as binary body
.build()
multipart.writeTo(streamOut)
}
//set the `mime.type` attribute to be used as `Content-Type` in InvokeHTTP
ff."mime.type" = multipart.getContentType().getValue()
REL_SUCCESS << ff

检查其他 add*添加多部分参数的方法: org.apache.http.entity.mime.MultipartEntityBuilder

要检查此代码,我使用了 InvokeHTTP紧随其后的处理器 ExecuteGroovyScript仅更改以下参数:
  • HTTP 方法:POST
  • 远程 URL:http://httpbin.org/post
  • 关于apache-nifi - Nifi 多部分形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57122809/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com