Конвертировать Curl в Restassured - PullRequest
       41

Конвертировать Curl в Restassured

0 голосов
/ 17 сентября 2018

У меня есть cURL, который берет контрольную сумму файла и xml вместе с несколькими заголовками для загрузки изображения на сервер.Я не очень знаком с RestAssured, поэтому мой вопрос таков;Как мне представить значения -F cURL в RestAssured?

`curl -s -w "\nHTTP %{http_code}\n" -X POST ${mediaUrl}/api/user/${LCID}/repository/${REPO_NAME}/file?conflictSolve=copy \
-H "Accept: application/vnd.******.dv-1.19+xml" \
-H "Content-Type: multipart/form-data" \
-H "Authorization: *** token=\"${TOKEN}\"; authVersion=\"1.0\"" \
-H "x-******-***: ${TOKEN}" \
-H "X-Client-Identifier: TEST" \
-H "X-Client-Platform: CURL" \
-H "x-ingest-tag:RI" \
-F "files=@${XML};type=application/vnd.******.dv-1.19+xml" \
-F "${checksum}=@${file};type=${mimeType}"`

В настоящее время я работаю только с заголовками.

        Response response = given()
            .log().all()

            .spec(RestUtilities.get**RequestSpecification())    
            .header("Accept","application/vnd.******.dv-1.19+xml")
            .header("Content-Type", "multipart/form-data")
            .header("Authorization", "*** token=\""+access_token+"\"; authVersion=\"1.0\";")
            .header("x-*****-***", "access_token")

    .when()
        .post()
    .then()
    .log().all()
        .statusCode(200)
        .extract()
        .response();

}

}

1 Ответ

0 голосов
/ 09 января 2019

Свойство curl -F создаст запрос POST с данными, используя http-заголовок multipart / form-data для Content-Type.

Так что с RestAssured вам нужно вызвать метод multipart ( см. Документ здесь ), чтобы загрузить файл.

Вот пример:

 @Test
public void postMultipart() throws Exception {
    RestAssuredMockMvc.mockMvc(mockMvc);
    File xmlfile = resourceLoader.getResource("classpath:demo.xml").getFile();
    given()
            .log().all()
            .multiPart("files", xmlfile, "application/xml")
            .when()
            .post("/upload")
            .then()
            .log().all()
            .statusCode(200)
            .extract()
            .response();
}

Итак, параметр -F "files = @ $ {XML}; тип = application / vnd. ******. Dv-1.19 +xml "\

Может быть преобразовано в .multiPart (" файлы ", {YOUR-XML}," application / vnd. ******. dv-1.19 + xml ")

Вы можете увидеть полный пример исходного кода в моем Github

...