You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TestCafe API请求中发送表单数据

使用TestCafe发起multipart/form-data格式的POST请求

问题场景

需要通过TestCafe的request API发起类似curl -F username=xxx -F password=xxx https://xxxxx/api/login的POST请求,传递表单数据作为请求体,当前代码无法正确实现需求:

const response = await t.request.post({
      url: "https://xxxxx/api/login",
      body: {'username': 'xxx', 'password':'xxxx'},
      headers: { "content-type": "multipart/form-data" }
    });

console.log(JSON.stringify(response));

解决方案

TestCafe处理multipart/form-data请求时,需用FormData对象构建表单数据,无需手动设置content-type头(框架会自动处理边界符),修正后的代码如下:

// 构建表单数据对象
const formData = new FormData();
formData.append('username', 'xxx');
formData.append('password', 'xxxx');

// 发起POST请求
const response = await t.request.post({
    url: "https://xxxxx/api/login",
    body: formData
});

console.log(JSON.stringify(response));

关键说明

  • 原生FormData对象会自动生成符合multipart/form-data规范的请求体,和curl -F的行为完全一致。
  • 手动设置content-type头会缺少必要的边界分隔符,导致服务端无法解析表单数据,因此无需添加该头,TestCafe会自动处理。

内容的提问来源于stack exchange,提问作者Sashika Wijesinghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:38:14