为了账号安全,请及时绑定邮箱和手机立即绑定

尝试使用 JsonNode 访问外部安全 RESTful 服务时出现问题

尝试使用 JsonNode 访问外部安全 RESTful 服务时出现问题

BIG阳 2023-09-20 15:19:56
我正在编写一个 Java 类来访问第三方公共 REST API Web 服务,该服务使用特定的 APIKey 参数进行保护。当我将 json 输出本地保存到文件时,我可以使用 JsonNode API 访问所需的 Json 数组。例如JsonNode root = mapper.readTree(new File("/home/op/Test/jsondata/loans.json"));但是,如果我尝试将实时安全 Web URL 与 JsonNode 一起使用例如JsonNode root = mapper.readTree(url);我得到:com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60))这表明我的类型不匹配。但我认为这更有可能是连接问题。我正在处理与 REST 服务的连接:private static String surl = "https://api.rest.service.com/xxxx/v1/users/xxxxx/loans?apikey=xxxx"public static void main(String[] args) {    try {        URL url = new URL(surl);        JsonNode root = mapper.readTree(url);        ....     }我也尝试过使用:URL url = new URL(surl);HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();       InputStream isr = httpcon.getInputStream();JsonNode root = mapper.readTree(isr);得到相同的结果。当我删除 APIKey 时,我收到状态 400 错误。所以我想我一定不能处理 APIKey 参数。有没有办法使用 JsonNode 处理对安全 REST 服务 URL 的调用?我想继续使用 JsonNode API,因为我只提取两个遍历大型数组中多个对象的键:值对。
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

只需尝试将响应读入字符串并记录下来,看看实际发生了什么以及为什么没有从服务器收到 JSON。


URL url = new URL(surl);

HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();       

InputStream isr = httpcon.getInputStream();

try (BufferedReader bw = new BufferedReader(new InputStreamReader(isr, "utf-8"))) {

    StringBuilder sb = new StringBuilder();

    String line;

    while ((line = bw.readLine()) != null) { // read whole response

        sb.append(line);

    }

    System.out.println(sb); //Output whole response into console or use logger of your choice instead of System.out.println

}


查看完整回答
反对 回复 2023-09-20
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信