首页 > 解决方案 > 对于 InputStream 类型,方法 readAllBytes() 未定义

问题描述

我无法摆脱 InputStream 错误类型的 readAllBytes() 方法未定义。我认为这是由于我使用的版本引起的?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");
        }

标签: javainputstream

解决方案


使用readTree(Reader r)重载方法让 Jackson 为您读取流:

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");

推荐阅读