带有令牌多部分/表单数据的http上的节点红色上传附件

问题描述

我迷失在节点红色中重新创建curl POST请求。 我的银行api文档需要这样的表单请求:

multipart/form-data

curl -S -s --cacert GeoTrust_Primary_CA.pem -X POST -F "type=xml" -F "token=aGEMQB9Idh35fxxxxxxxxxxxxxQwyGlQ" -F "file=@C:\davka.xml" https://www.fio.cz/ib_api/rest/import/> result.xml 2>errorlog.txt type errorlog.txt

我真的只需要

curl -X POST -F "type=xml" -F "token=aGEMQB9Idh35fxxxxxxxxxxxxxQwyGlQ" -F "file=@C:\davka.xml" https://www.fio.cz/ib_api/rest/import/

但是我无法将令牌传递给表单。

仍然获得required String parameter 'token' is not present

我失败了,没有首选的 http请求或许多 node-red-contrib-send-form(...)变体。

我的流程:

[{“ id”:“ f0c84434.8907a8”,“ type”:“ fileinject”,“ z”:“ 6012893b.689db8”,“ name”:“ / share / result.xml”,“ x”: 220,“ y”:300,“ wires”:[[“” 690ae5f4.37b66c“]]},{” id“:” 690ae5f4.37b66c“,” type“:” function“,” z“:” 6012893b.689db8 “,” name“:”“,” func“:” msg.headers = {\ n“ content-type”:'multipart / form-data'\ n}; \ nlet databuffer = msg.payload; \ n \ nmsg .payload = {\ n“ KEY”:{\ n“ value”:数据缓冲区,\ n“ options”:{\ n“ filename”:“ data.xml”,\ n“ type”:“ xml”,\ n “令牌”:“ aGEMQB9Idh35fxxxxxfakexxxxxxxxQwyGlQ” \ n} \ n} \ n} \ n \ n \ n返回msg;“,”输出“:1,” noerr“:0,”初始化“:”“,”完成“:” “,” x“:600,” y“:220,”电线“:[[”“ 6cca79ea.a45f28”]]},{“ id”:“ 6cca79ea.a45f28”,“类型”:“ http请求”,“ z“:” 6012893b.689db8“,”名称“:”“,”方法“:” POST“,” ret“:” txt“,” paytoqs“:”忽略“,” url“:” https:// www .fio.cz / ib_api / rest / import /“,” tls“:”“,” persist“:false,” proxy“:”“,” authType“:”“,” x“:760,” y“: 220,“ wires”:[[“” 8ec9dd16.83be“,” 3f347cc6.b9a114“]]},{” id“:” 8ec9dd16.83be“,” type“:”调试“,” z“: “ 6012893b.689db8”,“名称”:“文件已发送”,“活动”:true,“ tosidebar”:true,“控制台”:false,“ tostatus”:false,“ complete”:“ true”,“ targettype“:” full“,” statusVal“:”“,” statusType“:” auto“,” x“:980,” y“:220,” wires“:[]},{” id“:” ba973765。 11aa88“,” type“:” inject“,” z“:” 6012893b.689db8“,” name“:”“,” props“:[{” p“:” payload“}]],” repeat“:”“ ,“ crontab”:“”,“ once”:false,“ onceDelay”:0.1,“ topic”:“”,“ payload”:“”,“ payloadType”:“ date”,“ x”:200,“ y “:220,” wires“:[[”“ e75f0fb7.fa71b”]]},{“ id”:“ e75f0fb7.fa71b”,“ type”:“ file in”,“ z”:“ 6012893b.689db8”,“ name“:”“,” filename“:” / share / result.xml“,” format“:”“,” chunk“:false,” sendError“:false,” encoding“:” none“,” x“: 360,“ y”:220,“电线”:[[“” 690ae5f4.37b66c“]]},{” id“:” 3f347cc6.b9a114“,” type“:”调试“,” z“:” 6012893b.689db8 “,”名称“:”“,”活动“:true,” tosidebar“:true,”控制台“:false,” tostatus“:false,” complete“:” statusCode“,” targettype“:” msg“,” statusVal“:”“,” statusType“:”自动“,” x“:970,” y“:280,”电线“:[]}]

解决方法

您应该能够使用核心HTTP Request节点执行此操作。问题是传递的有效载荷的格式。

如果您更改Function节点以像这样构造有效负载,我相信您应该做得更多:


msg.payload = {
    "file": {
        "value": databuffer,"options": {
            "filename": "data.xml",}
    },"type": "xml","token": "aGEMQB9Idh35fxxxxxfakexxxxxxxxQwyGlQ"
}