2017-01-19 6 views
1

Я пытаюсь отправить некоторые 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> 

Кто-нибудь знает, как послать список длины один в качестве параметра формы?

ответ

0

Это работает, если вы передаете параметр формы как List:

.formParam(paramKey, Arrays.asList(paramWithSpace)) 
+0

Facepalm, я попытался сделать список в карте параметров, которые не похоже на работу, а затем никогда не пробовали список для '.formParam() '. Отлично работает, спасибо! – immulatin

 Смежные вопросы

  • Нет связанных вопросов^_^