Duaer

集成

Duaer 里 HTTP Request 的常见问题

Duaer 里 HTTP Request 常见报错的原因和修法:400、404、403、429、连接被拒、JSON 无效和文件上传。

Bad request - please check your parameters

对方返回 400 时,Duaer 的 HTTP Request 显示这条报错。常见原因:

  • Query Parameters 里的名称或值不被对方接受。
  • 传了数组,但格式和对方要求的不一致。在 Options 里改 Array Format in Query Parameters。

对照对方 API 文档核对参数的写法。

The resource you are requesting could not be found

对方返回 404:URL 写错,或这个接口已经下线。对照对方 API 文档确认路径和版本号。

Forbidden - perhaps check your credentials?

对方返回 403,说明认证通过不了或权限不够。

  • 给 API 密钥或账号补上这个操作需要的权限或 scope。
  • 用通用凭证时,确认头名称和值的格式符合对方要求。
  • 重新生成一把权限足够的密钥,更新到 Duaer 凭证里。

429 - The service is receiving too many requests from you

对方限流了。用 HTTP Request 自带的两种办法放慢请求:

  1. Options › Batching:Items per Batch 设每批条数,Batch Interval (ms) 设批与批之间的等待。每秒一次就填 1000。
  2. 节点设置里打开「失败时重试」,设「最大尝试次数」和「重试等待时长(毫秒)」。

Connection refused (ECONNREFUSED)

Duaer 能找到那台主机,但目标端口没有程序在监听。这不是域名解析失败,也不是超时。

自托管 Duaer 跑在 Docker 里时,最常见的原因是容器网络:容器里的 localhost 和 127.0.0.1 指的是 Duaer 容器自己,不是宿主机。

  • 目标在宿主机上,Docker Desktop(Mac、Windows):URL 写 http://host.docker.internal:<端口>。
  • 目标在宿主机上,Linux:给容器加 --add-host=host.docker.internal:host-gateway,或在 docker-compose.yml 的 extra_hosts 里加同样一行。
  • 目标是同一个 Compose 里的另一个容器:用服务名当主机名,例如 http://my-api:5000,端口写容器内部端口。
  • 不在 Docker 里也连不上 localhost:改写 http://127.0.0.1:<端口>。localhost 可能先解析成 IPv6 的 ::1,而目标只监听 IPv4。

Duaer 云上的数字组织在 Duaer 的服务器上运行,访问不到你电脑上的服务。本机服务要先通过隧道暴露成公网地址。

The value in the "…" field is not valid JSON

你选择用 JSON 传参数,但引号里的字段内容不是合法 JSON。

  • 先用 JSON 校验工具找出缺引号、多余或缺少逗号、括号不配对等问题。
  • 用表达式时,把整段 JSON 放进一对 {{ }} 里,例如 {{ { "name": $json.name } }}。

上传的文件名不对

Body Content Type 选 Form-Data 发文件时,Duaer 用二进制数据自带的文件名,Name 只是表单字段名。二进制数据没有文件名时,发出去的是 file。对方按文件名识别上传时,可能报 400「缺少文件」。

在 HTTP Request 之前设好文件名:Convert to File 节点里设 File Name;或者在 Code 节点里写 item.binary.data.fileName = 'index.html'。对方检查类型时,也要把 MIME 类型设对。

发文件时报 415 Unsupported media type

Body Content Type 选 Duaer Binary File 时,整个请求体就是这个文件,没有 multipart 外壳。只收 multipart 的接口会拒绝。改成 multipart:

  1. Body Content Type 选 Form-Data。
  2. 加一条 Body Parameters,Type 选 Duaer Binary File。
  3. Name 填对方文档里的表单字段名。
  4. Input Data Field Name 填存放文件的二进制属性,例如 data。

常见问题

Duaer 的 HTTP Request 报 429 怎么办?

在 Duaer 的 HTTP Request 里打开 Options › Batching 放慢请求,或在节点设置里打开「失败时重试」并设等待时长。

Duaer 云上的 HTTP Request 能访问我电脑上的 localhost 吗?

不能。Duaer 云上的数字组织在 Duaer 服务器上运行。先用隧道把本机服务暴露成公网地址。

同组