gpt4 book ai didi

java - 在 Cygwin 中添加 JSON 作为 HTTP PUT 请求中的消息正文?

转载 作者:行者123 更新时间:2023-11-30 07:00:17 32 4
gpt4 key购买 nike

我有以下 JSON ,我已使用 JsonLint 对其进行了验证:

{
"names": [
{
"id":"123",
"name":"stubName",
"type":"stubType",
}
]
}

我想将其作为消息正文添加到我的 CURL 命令中(使用 Cygwin),以便测试我编写的 REST 处理程序。

我目前正在使用这个命令,它是我通过阅读 this answer 创建的:

 curl -H "Content-Type: application/json" -X PUT -d '{
"names": [
{
"id":"123",
"name":"StubName",
"type":"StubType",
}
]
}' localhost:9980/Id/123/version/123/addPerson

我的处理程序如下:

            @PUT
@Consumes("application/json")
@Path("/Id/{Id}/version/{version}/addPerson")
public Response addPerson(@PathParam("Id") String Id,
@PathParam("version") String version,
@Context List<Name> names) {

LOGGER.info("NAMES PASSED : {}", names.toString());

}

当我尝试使用 CURL 调用我的方法时,我得到一个 HTTP 400 方法。

编辑:当我尝试执行名称.toString() 时,我得到一个空指针,这意味着名称列表必须为空。

最佳答案

  1. 您不应该使用@Context实体主体(参数)应该是无注释的。

     public Response addPerson(@PathParam("Id") String Id,
    @PathParam("version") String version,
    List<Name> names) {
  2. 带有 List<Name>您应该发送一个 JSON 数组。摆脱{"names": ,然后发送 []

    curl -H "Content-Type: application/json" -X PUT -d '[
    {
    "id":"123",
    "name":"StubName",
    "type":"StubType",
    }
    ]' localhost:9980/Id/123/version/123/addPerson

关于java - 在 Cygwin 中添加 JSON 作为 HTTP PUT 请求中的消息正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41042737/

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