gpt4 book ai didi

java - REST Assured 不接受大括号

转载 作者:行者123 更新时间:2023-12-02 00:06:41 25 4
gpt4 key购买 nike

无法在我的端点 URL 中使用查询

我尝试过使用 .queryParams() 但它似乎不起作用。我收到以下错误

java.lang.IllegalArgumentException: Invalid number of path parameters. Expected 1, was 0.Undefined path parameters are: cycle-id[12345];test.name[Validate_REST_Assured_Curly_Brackets].

谁能帮帮我

almQuery=https://{almurl}/qcbin/rest/domains/{domain}/projects/{project}/test-instances?query={cycle-id[12345];test.name[Validate_REST_Assured_Curly_Brackets]}

Response response = RestAssured.given().relaxedHTTPSValidation()
.contentType("application/xml")
.cookie(cookie) .get(getEntityEndpoint(almQuery)).then().extract().response();

最佳答案

这就是 RestAssured 实现的工作原理。每当你的 url 包含大括号时,它就会期望路径参数 with 。例如,如果您的网址包含 {project},您应该提供名为 project 的路径参数。

避免这种情况的唯一方法是在网址中手动编码 {} 字符。您可以使用 URLEncoder.encode() ,但它会弄乱您的其他字符,因此请尝试简单地将所有 {} 替换为编码值:

public class App {

public static void main(String[] args) {
String url = "http://www.example.com/path/{project}";
String encoded = encodeUrlBraces(url);
RestAssured.given()
.when()
.get(encoded);
}

private static String encodeUrlBraces(String url) {
return url.replaceAll("\\{", "%7B").replaceAll("}", "%7D");
}
}

这是来自 Rest Assured 创始人和贡献者的回答 https://github.com/rest-assured/rest-assured/issues/682

关于java - REST Assured 不接受大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58152161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com