RESTAssured отключить кодировку URL не работает правильно - PullRequest
0 голосов
/ 06 марта 2019

Я тестирую запрос HTTP Post с URL-адресом, подобным следующему:

https://myurl.com/api/logs/%2Fvar%2Flog%2Fmessages?Api-Token=12332429nmdsafs

У меня отключена кодировка URL, и вот мой запрос на сообщение:

RestAssured.given()
.contentType(JSON)
.log()
.all()
.urlEncodingEnabled(false)
.baseUri(RestAssured.baseURI)
.basePath(url)
.pathParam(LOG_PATH_PARAM_NAME, urlEncodeString(requireNonNull(logPath)))
.body(myJsonBody)
.when()
.post("/logs/{logPath}")
.then()
.statusCode(OK.getStatusCode());

Я тоже так пробовал:

RestAssured.given()
.contentType(JSON)
.log()
.all()
.urlEncodingEnabled(false)
.baseUri(RestAssured.baseURI)
.basePath(url)
.body(myJsonBody)
.when()
.post("/logs/" + urlEncodeString(requireNonNull(logPath)))
.then()
.statusCode(OK.getStatusCode());

А вот метод urlEncodeString:

private static String urlEncodeString(String value) throws UnsupportedEncodingException {
        return URLEncoder.encode(value, StandardCharsets.UTF_8.name()).replaceAll("\\+", "%20");
    }

Проблема в том, что мой URL, упомянутый выше, кодируется следующим образом:

https://myurl.com/api/logs/var/log/messages?Api-Token=12332429nmdsafs

Кто-нибудь знает, что здесь не так? Или знает обходной путь? Я уже пытался дважды сбежать с пути.

EDIT:

Я только что узнал, что отключение кодировки URL работает только для параметров URL.

...