Невозможно передать параметр запроса в RestAssured и, следовательно, вернуть нулевые значения

#java #automation #rest-assured #rest-assured-jsonpath

#java #автоматизация #будьте уверены #будьте уверены -jsonpath

Вопрос:

Мой URL-адрес запроса: http://........./api/vertex?q=id:1

 //Rest assured code

Response response = given().header("Authorization", "Bearer "   token).                        contentType(ContentType.JSON).queryParam("q", "id:1").when().get(url);
 

Это дает мне пустой ответ.

Но когда я пытаюсь с postman, это дает мне правильный результат: ответ Postman прилагается:
[1]: https://i.stack.imgur.com/lO2XU.png

Я также пытался напрямую отправить URL, т.е. url = http://………/api/vertex?q=id:1

 Response response = given().header("Authorization", "Bearer "   token).                        contentType(ContentType.JSON).when().get(url);
 

Все еще получаю НУЛЕВОЙ результат.

Я не могу найти причину, по которой я ошибаюсь. Пожалуйста, предложите.

Ответ №1:

Похоже, что «:» в вашем параметре запроса вызывает это. RestAssured по умолчанию будет его кодировать. Попробуйте отключить кодировку Url.

 Response response = given()
    .header("Authorization", "Bearer "   token)
    .contentType(ContentType.JSON)
    .urlEncodingEnabled(false)
    .queryParam("q", "id:1")
    .when().get(url);