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

如何使用Rest Assured发送Content-Type为form-data的请求?

使用Rest Assured调用multipart/form-data类型API的完整实现

我帮你补全并优化了调用form-data类型API的代码,结合你提供的参数Map,下面是完整的可运行实现:

import io.restassured.RestAssured;
import io.restassured.response.Response;
import java.util.HashMap;
import java.util.Map;

public class FormDataApiClient {

    private Map<String, String> getFormParamsMap() {
        Map<String, String> formParams = new HashMap<>();
        formParams.put("creatorId", "Instructor1");
        formParams.put("creatorPlatform", "Web");
        formParams.put("creatoredSource", "File");
        formParams.put("creatoredType", "Auto");
        formParams.put("deckId", "5a605b472e02d86561172dad");
        formParams.put("userId", "kind");
        return formParams;
    }

    public void invoke() {
        // 获取预定义的表单参数
        Map<String, String> formParams = getFormParamsMap();
        
        // 构建并发送multipart/form-data请求
        Response response = RestAssured.given()
                // 指定请求内容类型为multipart/form-data
                .contentType("multipart/form-data")
                // 批量添加所有表单字段(适用于纯文本参数)
                .multiPart((key, value) -> true, formParams)
                // 如果需要添加认证头,比如Bearer Token,可在此添加
                // .header("Authorization", "Bearer your_auth_token")
                .when()
                // 替换为你的实际API接口地址
                .post("https://your-api-endpoint.com/xxx");
        
        // 打印响应信息,方便调试
        System.out.println("API响应状态码: " + response.getStatusCode());
        System.out.println("API响应体内容: " + response.getBody().asString());
        
        // 可选:添加响应断言,验证结果是否符合预期
        response.then()
                .statusCode(200); // 示例:断言状态码为200
    }
}

关键说明:

  • 表单参数处理:使用multiPart()方法构建multipart/form-data请求,这里通过批量遍历参数Map的方式添加所有字段,比逐个添加更简洁高效
  • 内容类型指定:必须显式设置.contentType("multipart/form-data"),确保Rest Assured按照form-data格式封装请求
  • 扩展场景:如果需要上传文件,只需额外添加.multiPart("fileFieldName", new File("/path/to/your/file"))即可兼容文件上传需求
  • 认证与配置:如果接口需要权限验证,可以在given()后添加对应的请求头、Cookie或其他认证方式

内容的提问来源于stack exchange,提问作者Osanda Deshan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:58:55