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

标签 java json api rest-assured

我需要在 Rest Assured 邮寄调用中发送视频文件和 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。我明确地硬编码了表单参数中的值,并以多部分的形式发送了媒体文件,现在它工作正常。

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

最佳答案

您可以使用 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"));

关于java - 在 Rest Assured 中发布多部分文件和 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48151021/

相关文章:

node.js - REST API 端点,用于通过多步骤过程更改电子邮件和更改密码

java - 模拟和模拟虚拟服务有什么区别?

java - XMLHttpRequest POST 之后下载 png 文件

java - 尝试使用 Apache poi 在单词中设置阿拉伯语句子?

javascript - 添加到 JavaScript 对象类的方法在遍历给定对象时出现

api - 如何获取页面布局中的字段

api - 正式且可测试的 API 定义

java - 从方法返回的StretchIcon类不起作用。导致错误

c# - 反序列化嵌套的 JSON C# 并绑定(bind)到 XAML ListBox

javascript - 如何使用 parseJSON 将 javascript 关联数组转换为 json 并稍后使用?