Как отправить данные формы при использовании веб-ресурса Джерси для POST?

У меня есть запрос Postman POST, который выглядит следующим образом:

введите описание изображения здесь

Код, который я использую для сопоставления вышеупомянутого кода с использованием кода Джерси WebResource это следующее, но это не работает:

Client authKeyClient = Client.create();
WebResource webResource = authKeyClient.resource("https://ims-na1-stg1.company.com/token/v1");
String input = "{\"grant_type\":\"authorization_code\",\"client_id\":\"orders\",\"client_secret\":\"0af3b233-f1ca-41da-a0fa-61c08d15cadc\",\"code\":\"eyJhbGciOiJSUzI1NiIsIng1dSI6Imltc19uYTEtc\"}";
currentEnv.getImsSecret()).header("code", currentEnv.imsCode).get(String.class);
String response = webResource.post(String.class, input);

Я получаю 400 Bad Request, Что я делаю неправильно?

1 ответ

Попробуйте добавить Content-Type, Я бы также предложил отправить запрос более структурированным способом, чтобы избежать ошибок при опечатках:

MultivaluedMap formData = new MultivaluedMapImpl();
formData.add("name1", "val1");
formData.add("name2", "val2");
ClientResponse response = webResource
    .type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
    .post(ClientResponse.class, formData);

Подобное обсуждение: Использование клиента Джерси для выполнения операции POST

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