Почему код ошибки 400 при вызове POST с использованием клиента Джерси

Я вызываю почтовый запрос, используя клиент отдыха из Джерси, который не содержит тела запроса, но содержит заголовок авторизации. Я всегда получаю ошибку 400. Я попытался от почтальона, я получил 200 ответов. Вот мой код

ClientResponse response = null;
Client cliente=Client.create();
cliente.addFilter(new LoggingFilter(System.out));
WebResource webResource=cliente.resource("https://URL/token");
Builder builder = webResource.accept("application/json");
builder.type(MediaType.APPLICATION_JSON);
builder.header("Authorization", "Basic YbjjkwliOTQtNjRiYy00NWE5LWFhMzQtMTFhNDkyZZjNTVlOjZjYjk2OTMwNGE5YTQ3OTlhODVjZTM5MDFiMDEyMTI2";
builder.post(ClientResponse.class,Entity.json(""));

person Usman Shabir    schedule 16.07.2019    source источник
comment
Я мало что знаю о Джерси, но для базового заголовка аутентификации требуется пробел между строкой Basic и учетными данными B64. Я бы предположил, что есть способ заставить Джерси генерировать этот заголовок из настроенного имени пользователя/пароля, а не жестко кодировать его.   -  person Johnson    schedule 17.07.2019
comment
Неважно, что это за клиент, серверам нужно место, потому что оно является частью спецификации HTTP tools.ietf.org/html/rfc1945#section-10.16   -  person Chris Schaller    schedule 17.07.2019


Ответы (2)


Не используйте то, что вы пытаетесь сделать прямо сейчас. Используйте HttpAuthenticationFeature из Джерси, как это

HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("username", "password");

 

final Client client = ClientBuilder.newClient();

client.register(feature);
person Hasasn    schedule 16.07.2019

Если вы получаете 200 успешных ответов в почтальоне и ответ об ошибке в своем приложении, вам необходимо проверить свой API с помощью другого онлайн-инструмента для тестирования API. У меня была та же проблема, которую я поставил / в последней конечной точке.

person im5an    schedule 06.09.2019