高枕无忧 - 发送带有静态 JSON 有效负载和要上传文件的 POST 请求(内容类型:多部分/表单数据)

use*_*709 0 rest-assured

我想发送一个 POST 请求,其中 -

  1. 内容类型是“多部分/表单数据”。
  2. 在“Body”部分,我有 2 个参数 -> body - {static JSON Payload},文件- {任何文件,例如 .log 文件} 在此输入图像描述

在此输入图像描述

在放心代码中,我可以使用以下代码获取字符串格式的静态 JSON 有效负载 -

            String jsonFilePath = "<<Path to JSON File>>/Test_new.json";
        String response = given().log().all().header("X-AUTH-TOKEN",res).body(new String(Files.readAllBytes(Paths.get(jsonFilePath)))).     
                when().post("<<POST RESOURCE URL>>").
            then().log().body().assertThat().statusCode(200).extract().response().asString();
Run Code Online (Sandbox Code Playgroud)

运行此代码时,仅使用静态 JSON 有效负载,我收到“415”错误代码。 问题 -

  1. 如何才能在放心中成功拨打此类电话?
  2. 当我想通过此调用上传文件时,该怎么做?

luc*_*-17 5

您需要使用multiPart()方法来上传文件,而不是body()方法。例如:

    File json = new File("src/test/resources/test_new.json");
    File file = new File("src/test/resources/debug.log");
    
    given().log().all()
            .multiPart("files", file)
            .multiPart("body", json, "application/json")
            .post("your_url");
Run Code Online (Sandbox Code Playgroud)