1

我将如何将以下 curl 命令转换为 Jitterbit 操作?

curl -i -u username:password -X POST -F file=@/path/to/file.csv 
https://website.com/api/filepost

目前我的操作结构如下:

在此处输入图像描述

  1. 脚本:

    $jitterbit.target.http.form_data = true; $jitterbit.target.http.form_data.filename = "file.csv"; $jitterbit.target.http.form_data.name = "文件";

  2. Source 一个没有标题的 CSV 文件,它符合 API 的规范(通过 curl 成功发送了相同的文件)

  3. 转换:文本到文本 - 源文件和目标文件都使用与源文件相同的文件格式

  4. API端点 在此处输入图像描述

目前我已成功验证,但我收到一条 400/Bad Request 错误消息,提示“没有附加文件”。

完整的错误信息:

The operation "2. POST Preapplicants - CSV to API" failed.

Fatal Error
Failed to post to the url 'https://website.com/api/filepost’. 
The last (and probably most relevant) error was: The server 
returned HTTP Status Code : 400 Bad Request  Error is: The 
request could not be processed by the server due to invalid 
syntax. Headers sent by the server: HTTP/1.1 400 Bad Request 
Server: nginx/1.10.3 (Ubuntu) Content-Type: application/json 
Transfer-Encoding: chunked Connection: keep-alive Cache-Control: 
no-cache Date: Tue, 12 Sep 2017 18:55:38 GMT  The response was: 
{"message":"No file attached."}
4

2 回答 2

0

我通过执行以下操作解决了这个问题: 1. 从转换操作更改为存档操作(使用相同的源、目标和脚本) 2. 将我的 HTTP 连接的内容类型更改为 multipart/form-data( curl 传递的默认内容类型)

于 2017-09-13T13:18:17.020 回答
-1

你可以这样做。我所做的是使用文件列表操作将其存储到数组中,然后使用 Base64EncodeFile() 函数上传文件

于 2021-01-14T17:52:25.040 回答