使用Restassured上传文件

时间:2017-06-09 10:52:12

标签: java rest rest-assured

我想使用Java和RestAssured库上传文件。有谁知道如何使用这个库将文件上传到字段?

当使用Postman时,我只是调用端点并添加Body部分key = upload和value有一个"选择文件"按钮。

如何使用Restassured将文件上传到字段?我已经有了生成请求主体的方法,并为它设置了所有参数,如下所示:

public CustomizationSetClientField(String clientId, String fieldSetName, String version, String fieldName, String name, String type, String value, String language, String role){
        this.body.put("name", name);
        this.body.put("type", type);
        this.body.put("value", value);

        this.url = Config.getByName("customization_url");
        this.pathTemplate = Config.getByName("customization_set_client_field");
        this.path = Utils.createPath(pathTemplate, clientId, fieldSetName, version, fieldName);
        this.role = role;


    }

现在这是设置字段,但我不知道如何使用Restassured上传,你能告诉我怎么样?

2 个答案:

答案 0 :(得分:1)

你可能正在寻找multipart file uploads。例如:

given().
        multiPart("file", new File("/path/to/file")).
when().
        post("/upload"); 

答案 1 :(得分:0)

要使用REST API上传文件,它需要将“ Content-Type”作为“ multipart / form-data”。 现在,您需要与开发人员一起了解它们是允许直接将文件传递给API还是需要将文件内容转换为字节数组。

如果需要转换为字节,则可以使用以下代码

Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "multipart/form-data");
byte[] fileContent = FileUtils.readFileToByteArray(new File(filePath));
RestAssured.given().headers(headers).body(fileContent ).post(url);

否则,您可以直接在另一个注释中尝试使用Johan共享的代码。