Отправка данных json через POST в Java API, размещенный на tomcat7, конечная точка требует 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"} является ключом, привязанным к нулевому значению.

Я хочу сделать что-то чистое, моя главная цель - отправить JSON через POST, как это:

{"my": "json data"}

Но вместо этого он посылает забавные данные, и по этому конкретному вопросу нет темы. Может ли кто-нибудь помочь мне отправить мои данные JSON, как я хочу?

Спасибо за вашу помощь, не стесняйтесь спрашивать более подробную информацию!

0 ответов

Другие вопросы по тегам