Mam RESTful API Próbuję połączyć się z Androidem i RestTemplate. Wszystkie żądania do API są uwierzytelniane za pomocą uwierzytelniania HTTP, poprzez ustawienie nagłówków HttpEntity, a następnie za pomocą metody RestTemplate o nazwie exchange()
.Wykonywanie uwierzytelnionych żądań POST za pomocą Spring RestTemplate dla Androida
Wszystkie żądania GET działają w ten sposób, ale nie mogę wymyślić, jak wykonać uwierzytelnione żądania POST. postForObject
i postForEntity
obsługują POST, ale nie mają łatwego sposobu na ustawienie nagłówków uwierzytelniania.
Więc dla GET, to działa świetnie:
HttpAuthentication httpAuthentication = new HttpBasicAuthentication("username", "password");
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAuthorization(httpAuthentication);
HttpEntity<?> httpEntity = new HttpEntity<Object>(requestHeaders);
MyModel[] models = restTemplate.exchange("/api/url", HttpMethod.GET, httpEntity, MyModel[].class);
Ale POST najwyraźniej nie działają z exchange()
jak nigdy nie wysyła niestandardowe nagłówki i nie widzę jak ustawić ciało żądania używając exchange()
.
Jaki jest najprostszy sposób na uwierzytelnianie żądań POST z RestTemplate?
requestHeaders.setAuthorization (httpAuthentication) .. jego undefined..no metody takie jak setAuthorization .. – DEADEND