Я пытаюсь отправить некоторые JSON через POST в конечную точку с помощью RestAssured. API ожидает список для ключа. Значение, которое мне нужно отправить для этого, - это список с одним элементом.Отправка одного списка элементов как formParam с RestAssured
Идеальный запрос будет выглядеть следующим образом:
Request method: POST
Request path: http://localhost:8080/registrionURL
Request params: <none>
Query params: <none>
Form params: paramKey=[param space]
Path params: <none>
Multiparts: <none>
Если я добавляю параметры в виде списка или карты он еще раз посылает параметр в виде строки:
String paramKey = "paramKey";
String paramWithSpace = "param space";
Response response = RestAssured.given()
.formParam(paramKey, new String[]{paramWithSpace})
.and().contentType("application/json")
.log().method().log().path().log().parameters()
.when().post(MessageFormat.format(registrationUrl, testName));
Выход:
Request method: POST
Request path: http://localhost:8080/registrionURL
Request params: <none>
Query params: <none>
Form params: paramKey=param space
Path params: <none>
Multiparts: <none>
Кажется, что обычным способом является просто позвонить .formParam()
несколько раз, чтобы создать список :
String paramKey = "paramKey";
String paramWithSpace = "param space";
Response response = RestAssured.given()
.formParam(paramKey, paramWithSpace)
.formParam(paramKey, paramWithSpace)
.and().contentType("application/json")
.log().method().log().path().log().parameters()
.when().post(MessageFormat.format(registrationUrl, testName));
Выход:
Request method: POST
Request path: http://localhost:8080/registrionURL
Request params: <none>
Query params: <none>
Form params: paramKey=[param space, param space]
Path params: <none>
Multiparts: <none>
Кто-нибудь знает, как послать список длины один в качестве параметра формы?
Facepalm, я попытался сделать список в карте параметров, которые не похоже на работу, а затем никогда не пробовали список для '.formParam() '. Отлично работает, спасибо! – immulatin