Я не могу избавиться от метода readAllBytes () не определен для ошибки типа InputStream. Я полагаю, это вызвано используемой мной версией? Соответствие JDK 1.8 Пожалуйста, сообщите спасибо.

if (http.getResponseCode() == 200) {                    
            ObjectMapper mapper = new ObjectMapper();           
            try (InputStream inputStream = http.getInputStream()) {
                String jsonContent = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
                JsonNode node = mapper.readTree(jsonContent);
                String Stytch_user_id = node.get("user_id").textValue();
                Object[] objects = getUserLogin(Stytch_user_id, "P0002","123456789");
            }       
        } else { 
            System.out.println("failed");
        }
-1
nananaka 4 Май 2021 в 00:48

1 ответ

Лучший ответ

Используйте readTree(Reader r) перегруженный метод, позволяющий Джексону читать поток за вас:

JsonNode node;
try (Reader in = new InputStreamReader(http.getInputStream(), StandardCharsets.UTF_8)) {
    ObjectMapper mapper = new ObjectMapper();
    node = mapper.readTree(in);
}

String Stytch_user_id = node.get("user_id").textValue();
Object[] objects = getUserLogin(Stytch_user_id, "P0002","123456789");
3
Andreas 3 Май 2021 в 22:00