如何在 RestAssured 中发送 POST 和 form-data in Body 设置 multipart 与特定 content-type
How to send a POST with form-data in Body in RestAssured setting multipart with a specific content-type
尝试在 RestAssured Body 中使用 form-data 发送 POST 请求,但不确定应该怎么做。
在 Postman 里,没问题。
我试过类似的东西:
public Response create() {
return super
.given()
.contentType("multipart/form-data")
.multiPart("MetaDataOne", new File("file.txt"))
.multiPart("MetaDataTwo", new File("file2.txt"))
.basePath("/create")
.log().all()
.post()
.then()
.log().all()
.extract()
.response();
}
但我的文件似乎没有在请求中发送。
控制台日志
多部分
- Content-Dispositionform-data;名称=元数据一个;文件名=文件
- Content-Type: application/octet-stream
{“错误”:415,“描述”:不支持内容类型application/octet-stream}
Headers
使用 RESTFull 网络服务非常简单 Api,只需按照以下简单步骤操作即可
步骤 1:创建指向服务的请求对象
RestAssured.baseURI ="https://myhost.com/xyz";
RequestSpecification request = RestAssured.given();
第 2 步:创建一个包含所有表单字段的 JSON 对象
JSONObject jsonObject = new JSONObject();
jsonObject.put("Form_Field_1", "Input Value 1");
jsonObject.put("Form_Field_2", "Input Value 2");
jsonObject.put("Form_Field_3", "Input Value 3");
jsonObject.put("Form_Field_4", "Input Value 4");
第三步:在请求体中添加JSON对象并发送Request
request.header("Content-Type", "application/json");
request.body(jsonObject.toJSONString());
Post请求并检查响应
Response response = request.post("/register");
第 4 步:验证响应
int statusCode = response.getStatusCode();
你能试试这个吗,这应该将 Content-Type 覆盖为 multipart/form-data
而不是 application/octet-stream
given().contentType("multipart/form-data").multiPart("MetaDataOne", new File("file.txt"), "multipart/form-data")
.multiPart("MetaDataTwo", new File("file2.txt"), "multipart/form-data").basePath("/create").log().all()
.post().then().log().all().extract().response();
尝试在 RestAssured Body 中使用 form-data 发送 POST 请求,但不确定应该怎么做。 在 Postman 里,没问题。
我试过类似的东西:
public Response create() {
return super
.given()
.contentType("multipart/form-data")
.multiPart("MetaDataOne", new File("file.txt"))
.multiPart("MetaDataTwo", new File("file2.txt"))
.basePath("/create")
.log().all()
.post()
.then()
.log().all()
.extract()
.response();
}
但我的文件似乎没有在请求中发送。
控制台日志
多部分
- Content-Dispositionform-data;名称=元数据一个;文件名=文件
- Content-Type: application/octet-stream
{“错误”:415,“描述”:不支持内容类型application/octet-stream}
Headers
使用 RESTFull 网络服务非常简单 Api,只需按照以下简单步骤操作即可
步骤 1:创建指向服务的请求对象
RestAssured.baseURI ="https://myhost.com/xyz";
RequestSpecification request = RestAssured.given();
第 2 步:创建一个包含所有表单字段的 JSON 对象
JSONObject jsonObject = new JSONObject();
jsonObject.put("Form_Field_1", "Input Value 1");
jsonObject.put("Form_Field_2", "Input Value 2");
jsonObject.put("Form_Field_3", "Input Value 3");
jsonObject.put("Form_Field_4", "Input Value 4");
第三步:在请求体中添加JSON对象并发送Request
request.header("Content-Type", "application/json");
request.body(jsonObject.toJSONString());
Post请求并检查响应
Response response = request.post("/register");
第 4 步:验证响应
int statusCode = response.getStatusCode();
你能试试这个吗,这应该将 Content-Type 覆盖为 multipart/form-data
而不是 application/octet-stream
given().contentType("multipart/form-data").multiPart("MetaDataOne", new File("file.txt"), "multipart/form-data")
.multiPart("MetaDataTwo", new File("file2.txt"), "multipart/form-data").basePath("/create").log().all()
.post().then().log().all().extract().response();