Как отправить данные формы при использовании веб-ресурса Джерси для 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