【问题标题】:put parameters ignored rest assured把参数忽略放心
【发布时间】:2013-07-29 06:33:38
【问题描述】:

(已解决):这是因为 PUT 的默认参数类型是请求参数而不是表单参数。把“parameters(..)”改成“formParameters(..)”就可以了。

我的代码: JUNIT测试:(图1)

expect().statusCode(Status.NO_CONTENT.getStatusCode())
        .given()
        .parameters("name", name, "URL", URL)
        .cookie(cookie_name, newapi_session_id)
        .put("/IfdOrganization/"+orgGuid);

服务器代码:(图一)

@PUT @Path("/IfdOrganization/{guid}") @Produces({APPLICATION_XML, APPLICATION_JSON})
public void update(@PathParam("guid") String guid, @FormParam("name") String name,@FormParam("URL") String URL,@CookieParam(session_cookie_name) String sessionId, @Context HttpHeaders headers) {
}

问题: 在我的 JUnit 测试中执行 PUT 时,服务器上的参数“name”和“URL”的值为 null(图 1)。如果我在 JUnit 测试中将“.put()”更改为“.post()”,并在服务器上将“@PUT”更改为“@POST”,则参数的值是正确的(图 2)。另外,在 AJAX 中使用 PUT 时,参数得到了正确的值,这意味着问题不是来自服务器。

我正在使用 eclipse kepler、windows 8 和 rest-assured-1.8.0

JUNIT 测试:(图 2)

expect().statusCode(Status.NO_CONTENT.getStatusCode())
            .given()
            .parameters("name", name, "URL", URL)
            .cookie(cookie_name, newapi_session_id)
            .post("/IfdOrganization/"+orgGuid);

服务器代码:(图2)

@POST @Path("/IfdOrganization/{guid}") @Produces({APPLICATION_XML, APPLICATION_JSON})
public void update(@PathParam("guid") String guid, @FormParam("name") String name,@FormParam("URL") String URL,@CookieParam(session_cookie_name) String sessionId, @Context HttpHeaders headers) {
}

任何帮助表示赞赏

【问题讨论】:

    标签: java rest-assured


    【解决方案1】:

    这是当前版本的 RestAssured 中的一个错误。 1.8.1See here

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 2011-12-01
      • 2016-04-21
      • 2013-06-14
      相关资源
      最近更新 更多