我需要在 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/