【问题标题】:The method readAllBytes() is undefined for the type InputStream对于 InputStream 类型,方法 readAllBytes() 未定义
【发布时间】:2021-05-03 21:48:32
【问题描述】:

我无法摆脱类型 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");
        }

【问题讨论】:

  • 是的,你是对的。该方法是在 Java 9 中引入的。那么您希望得到什么建议?
  • readAllBytes() 是在 Java 9 中添加的,所以说 documentation,又名 javadoc。

标签: java inputstream


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 2013-11-11
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多