“在api中传递url参数时,路径参数的数量无效。预期为0,为3”错误(已放心)

时间:2016-10-07 12:36:56

标签: rest-assured

尝试用放心的方式测试其余的api。得到错误

  

路径参数的数量无效。预计0,是3。

public class GetSociailDetails {

    @Test
    public void generateToken() {

        Map<String,String> userDetails = new HashMap<>();

        userDetails.put("msISDN", "1217071016");
        userDetails.put("messageSource", "TWITTER");
        userDetails.put("socialId", "168988132");

        given()
        .contentType("application/json")

        .pathParam("access_token", "LLRPqxvU1uoT8YSl8")

        .pathParam("pageNo", "1")

        .pathParam("order", "desc")

        .body(userDetails)

        .post("http://name.com/rest/crm/getdetails")

        .then()

        .statusCode(200);

    }

}

在POST方法的其余api中传递url参数是否有不同的方法。

3 个答案:

答案 0 :(得分:2)

而不是

  

.pathParam(&#34; pageNo&#34;,&#34; 1&#34;)

已更改为

  

.queryParam(&#34; pageNo&#34;,&#34; 1&#34;)

这很有用。

答案 1 :(得分:0)

在使用路径参数时,您需要在希望参数显示的URL上添加“映射”。例如,在您的示例中,如果您将发帖请求更改为以下内容,那么它会起作用:

.post("http://name.com/rest/crm/getdetails/{access_token}/{pageNo}/{order}")

这将根据您的示例生成以下URL:

http://name.com/rest/crm/getdetails/LLRPqxvU1uoT8YSl8/1/desc

答案 2 :(得分:0)

如何在“确保放心”中使用路径参数:

  1. 使用pathParam方法将path参数添加到基本URI的末尾

例如

  1. 基本URI:https://www.example.com/
  2. 路径参数:resource / {resourceID}

完整代码:

RestAssured.given().baseUri("https://www.example.com/").pathParam("resourceID","Resource123").get(/resource/{resourceID});

完整URI:https://www.example.com/resource/Resource123