无法在 RestAssured 中传递查询参数,因此返回 NULL 值

问题描述

我的请求网址是: 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);

它给了我空白的回复

但是当我尝试使用邮递员时,它给了我正确的结果: 附上邮递员回复
[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);

仍然得到 NULL 结果。

我找不到我出错的原因。 请提出建议。

解决方法

看起来您的查询参数中的“:”是导致此问题的原因。默认情况下,RestAssured 将对其进行编码。尝试禁用网址编码。

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