0

我正在尝试使用通过REST POST snap将 csv 文件从 snaplogic 发送到 api 端点,但它似乎并没有实际发送文件,因为响应说找不到文件

当我通过邮递员发帖时,它很好,并使用我在快照中使用的相同信息

我在 POST 快照中的设置如下:

  • 标签*= REST 发布服务 URL*=http://(ip:port)/v1/innovazones HTTP

  • 实体=(空白)批量大小=(空白)显示所有标题(选定)单个

  • 文件上传:File=.../shared/TEMPcsv.csv 单个文件上传:文件

  • key=file 单个文件上传:要使用的文件名=innovaZones_csv_file

  • 上传传输请求类型=计算内容长度上传正文

  • type=Multipart 表单数据单个文件上传:Multipart Content-Type=text/csv

  • HTTP 标头:

  • 键=内容类型;值=应用程序/x-www-form-urlencoded

  • key=授权值="Bearer" + account.access_token

  • 信任所有证书*(选中)遵循重定向*(选中)

我应该收到这条消息:

{
    "status": "success",
    "message": "Data transmitted successfully",
    "payload": {}
}

但我在回复中得到了这个:

"error": "REST API 服务端点返回错误结果:状态码 = 400,原因短语 = Bad Request"

"error_entity": {
    "status":"fail",
    "message":"File not found",
    "payload":{
         "message":"File not found",
         "statusCode":400,
         "status":"fail"
    }
 }

“原始”:{文件名:../shared/TEMPcsv.csv,结果:覆盖,原始:{,...}}

“文件名”:“../shared/TEMPcsv.csv”

“结果”:“覆盖”

4

1 回答 1

0

您尚未添加要上传的实际文件。您只设置了文件的名称。

根据 SnapLogic 文档 -

单个文件上传:要使用的文件名

如果您正在上传文件,则可以配置此属性,在此字段中输入的值将被视为正在上传的文件的名称。您可以通过将此属性留空来保留原始文件名。

您还需要在上传文件部分指向您要上传的实际文件。

同样,来自 SnapLogic 文档 -

上传文件)

列出要上传的文件的文件密钥和文件名。默认情况下,“设置”弹出窗口显示上传单个文件所需的字段。单击 + 按钮向该字段集添加新行。对于您要上传的每个文件,您需要指定上传文件密钥、位置和名称、目标目录中文件的名称以及与您要上传的文件关联的多部分内容类型.

请参考 - SnapLogic 文档 - REST POST

于 2019-10-22T19:01:23.847 回答