首页 > 解决方案 > 通过 POST 将 json 数据发送到由 tomcat7 托管的 Java API,需要 MultivaluedMap 的端点,正在向我的 json 对象添加“= []”

问题描述

首先,这是我要访问的端点:

@POST
@Path("/endpoint")
@Produces("text/plain")
public Response authentication(MultivaluedMap<String, String> formParams) { 
    System.out.println(formParams.toString());
    String my = formParams.getFirst("my");
    // rest of the code...
}

最初我使用 @FormParam("jsonData") 来获取我的 json 对象。但是我必须像这样发送我的数据:

jsonData={"my": "json data"}

一开始我想摆脱'jsonData =',发现你可以使用MultivaluedMap只发送这个:

{"my": "json data"}

但是,当我尝试使用此curl请求进行测试时:

curl --data '{"my": "json data"}' https://mywebsite.com/my/endpoint -v -H "Content-type: application/x-www-form-urlencoded"

服务器收到这个:

{{"my": "json data"} = []}

它阻止我这样做:

String my = formParams.getFirst("my");

因为它认为整个 {"my": "json data"} 是键,绑定到一个空值。

我想做一些干净的事情,我的主要目标是通过 POST 发送 json,如下所示:

{"my": "json data"}

但它正在发送有趣的数据,并且没有关于这个特定问题的主题。有人可以帮我发送我想要的json数据吗?

感谢您的帮助,请随时询问更多详细信息!

标签: javajsonposttomcat7

解决方案


推荐阅读