如何转义 URL 中的等号?

How to escape an equal sign in an URL?

在我的 RestAssured 测试中我有:

String customerId = "1234";

given().queryParam("customerId=" + customerId)
        .spec(customerApi).auth().oauth2(token)
.when().log().ifValidationFails()
       .get("/api/v1/customers/latest")
.then()
       .assertThat()
       .statusCode(201);

...我需要使用 = 字符传递查询参数。

编码如下:

https://customer-api.com/api/v1/customers/latest?customerId%3D1234

解决这个问题最干净的方法是什么?

您将参数名称和值作为参数名称传递给 RestAssured,然后转义。 只需将参数的实际值作为 queryParam(String, Object...) 的第二个参数传递即可。如有必要,库将处理参数名称或值的转义。

.queryParam("customerId", customerId)

结果如下:

https://customer-api.com/api/v1/customers/latest?customerId=1234