Отправка запроса с использованием resttemplate, но 401 несанкционированный

String url = "https://api.assembla.com/token?";

RestTemplate restTemplate = new RestTemplate();

MultiValueMap<String, String> body = 
        new LinkedMultiValueMap<String, String>();

body.add("client_id", "myid");
body.add("client_secret", "mysecret");
body.add("grant_type", "client_credentials");
HttpHeaders headers = new HttpHeaders();
headers.add("Accept", "application/json");
headers.add("Content-type", "application/json");
HttpEntity<?> entity = new HttpEntity<Object>(body, headers);

ResponseEntity<JsonResponseType> res = 
        restTemplate.exchange(url, HttpMethod.POST, entity, JsonResponseType.class);

System.out.println("Hello....." + res);

я получаю 401 неавторизованную ошибку, кто-нибудь может удалить ее

также использовать

MultiValueMap<String, String> body = 
        new LinkedMultiValueMap<String, String>();

body.add("x-api-key", "myapikey");
body.add("x-api-secret", "myapisecret");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Accept", "application/json");
headers.set("Content-type", "application/json");

HttpEntity<?> entity = new HttpEntity<Object>(body, headers);
entity.getHeaders().setContentType(MediaType.APPLICATION_JSON);
RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> messageConverters = new
        ArrayList<HttpMessageConverter<?>>();

messageConverters.add(new MappingJacksonHttpMessageConverter());
restTemplate.setMessageConverters(messageConverters);
ResponseEntity<JsonResponseType> response =
        restTemplate.exchange(
                url, HttpMethod.POST, entity, JsonResponseType.class);

System.out.println("Hello....." + response);

у этого также есть ошибка 401 неавторизованный не найден

я тоже использую

HttpMethod.POST, requestEntity, YourResponseType.class);
System.out.println("Hello....." + responseEntity);`

RestTemplate restTemplate = new RestTemplate();
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON);

HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);

HttpEntity<String> requestEntity = new HttpEntity<String>(
        "X-Api-Key:myapikey X-Api-Secret:=my api secret",
        headers);
ResponseEntity<YourResponseType> responseEntity = restTemplate
        .exchange("https://api.assembla.com/v1/spaces.json",

это также такая же ошибка


person Community    schedule 28.04.2014    source источник
comment
возможно, ваши учетные данные недействительны   -  person NimChimpsky    schedule 28.04.2014
comment
я проверяю это и отдыхаю более 100 раз   -  person    schedule 28.04.2014
comment
и это не удалось более 100 раз?   -  person NimChimpsky    schedule 28.04.2014
comment
да его ошибка возврата 401 неавторизованный   -  person    schedule 28.04.2014


Ответы (1)


Первое, что нужно попробовать, это удалить headers.add("Content-type", "application/json");. Ваш фактический тип контента — application/x-www-form-urlencoded.

Следующий код отлично работает для меня:

   RestTemplate restTemplate = new RestTemplate();
   MultiValueMap<String, String> body = new LinkedMultiValueMap<String, String>();
   body.add("client_id", "aViwaUZXir44tcdmr6bg7m");
   body.add("client_secret", "65d952744a49774bcf24bcd32c521619");
   body.add("grant_type", "client_credentials");
   HttpHeaders headers = new HttpHeaders();
   headers.add("Accept", "application/json");
   HttpEntity<?> entity = new HttpEntity<Object>(body, headers);
   ResponseEntity<String> res = restTemplate.exchange(
       "https://api.assembla.com/token?", HttpMethod.POST, entity, String.class);

Я даже оставляю здесь действительные учетные данные, так как они созданы исключительно для тестирования.

person Jk1    schedule 28.04.2014
comment
можете ли вы предоставить мне пример аутентификации с помощью assembla - person ; 28.04.2014
comment
Действительно, сегодня вечером я дополню ответ полным образцом кода из дома. Тем временем вы можете попробовать предложения, которые я уже перечислил выше. - person Jk1; 28.04.2014
comment
Вот, пожалуйста, я отредактировал ответ, включив в него полный пример кода. - person Jk1; 29.04.2014