Digest

krgewb

Top Contributor
Bisher habe ich Informationen von einer Kamera wie folgt geholt:

Java:
    @GetMapping(value = "")
    public ByteArrayWrapper getImage(final HttpSession session) {
        logger.info("getImage() called");

        HttpHeaders headers = createHeaders("admin", "n3H5emqasx3d!");
        headers.setContentType(MediaType.TEXT_PLAIN);

        try {
            String url = "http://1.2.3.4/Streaming/Channels/101/picture";
            ResponseEntity<byte[]> exchange = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(headers), byte[].class);
            byte[] b = exchange.getBody();
            String s = new String(b, StandardCharsets.ISO_8859_1);
            return new ByteArrayWrapper(s.getBytes(StandardCharsets.UTF_8));
        } catch (Exception e) {
            logger.info(e.getMessage());
            return null;
        }
    }

    private HttpHeaders createHeaders(String username, String password) {
        return new HttpHeaders() {{
            String auth = username + ":" + password;
            byte[] encodedAuth = Base64.encode(auth.getBytes(Charset.forName("utf8")));
            String authHeader = "Basic " + new String(encodedAuth);
            set("Authorization", authHeader);
        }};
    }

Jetzt habe ich aber eine Kamera, bei der die Authentifizierung nicht mit Basic, sondern mit Digest funktioniert. Wie muss ich es da schreiben?
 

Neue Themen


Oben