Tôi có API RESTful Tôi đang cố kết nối với thông qua Android và RestTemplate. Tất cả các yêu cầu API được xác thực bằng Xác thực HTTP, thông qua thiết lập các tiêu đề của HttpEntity và sau đó sử dụng phương thức exchange()
của RestTemplate.Thực hiện yêu cầu POST đã được xác thực bằng Spring RestTemplate cho Android
Tất cả yêu cầu GET hoạt động tốt theo cách này, nhưng tôi không thể tìm ra cách thực hiện các yêu cầu POST đã được xác thực. postForObject
và postForEntity
xử lý POST nhưng không có cách nào dễ dàng để đặt tiêu đề Xác thực.
Vì vậy, đối GET, công trình vĩ đại này:
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);
Nhưng POSTS dường như không làm việc với exchange()
như nó không bao giờ gửi các tiêu đề tùy chỉnh và tôi không thấy làm thế nào để thiết lập các cơ thể yêu cầu sử dụng exchange()
.
Cách dễ nhất để thực hiện yêu cầu POST được xác thực từ RestTemplate là gì?
requestHeaders.setAuthorization (httpAuthentication) .. Phương pháp undefined..no của nó như setAuthorization .. – DEADEND