java – 在Rest Assured中发布多部分文件和JSON

我需要在Rest Assured post call中发送视频文件和
JSON对象.

结构如下:

{ “sample” : {
“name” : “sample-name”,
“kind” : “upload”,
“video_file” : multipart file here } }

所以我确实喜欢以下内容

码:

given()
                        .header("Accept", "application/json")
                        .header(auth)
                        .config(rConfig)
                        .body(body)
                        .multiPart("sample[video_file]", new File("path"), "video/mp4")
                        .formParam("sample[name]", "Video Upload")
                        .formParam("sample[kind]", "upload")
                        .log().all().
                        expect()
                        .statusCode(expectedStatusCode)
                        .post(url);

在Rest Assured中使用multipart时,我无法使用application / JSON.我在表单param中明确地硬编码了这个值,并在多部分中发送了媒体文件,现在它工作正常.

如何在单个内部对象中发送所有表单参数数据.

最佳答案 您可以使用RequestSpecBuilder执行此操作.它支持所有请求参数,您可以轻松创建多部分请求.

示例代码取自https://github.com/rest-assured/rest-assured/wiki/Usage

RequestSpecBuilder builder = new RequestSpecBuilder();
builder.addParam("parameter1", "parameterValue");
builder.addHeader("header1", "headerValue");
RequestSpecification requestSpec = builder.build();

given().
        spec(requestSpec).
        param("parameter2", "paramValue").
when().
        get("/something").
then().
        body("x.y.z", equalTo("something"));
点赞