java - 把参数忽略放心

标签 java rest-assured

(已解决):那是因为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);

服务器代码:(图1)

@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 时,参数“名称”和“URL”的值在服务器上为空(图 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) {
}

感谢任何帮助

最佳答案

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

关于java - 把参数忽略放心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17924551/

相关文章:

java - 放心 - 如果失败重试请求

java - 查找输入数组的最大值

Rest Assured API 测试 - 将 Json 对象作为参数传递给获取请求

java - 从 JSON 响应中获取空值

java - 请放心,代码在 java API 中给出 503 响应,但在 POSTMAN 中工作正常

java - 放心发送过期日期格式错误的cookie吗?

java - 单击按钮时将 ImageIcon 添加到已经可见的 GUI

java - 对象和数组列表

java - 无法将 Tomcat 与 solr 集成

java - 尝试打印数组列表时出错