我正在编写一个 Java 类来访问第三方公共 REST API Web 服务,该服务使用特定的 APIKey 参数进行保护。
当我将 json 输出本地保存到文件时,我可以使用 JsonNode API 访问所需的 Json 数组。
例如
JsonNode root = mapper.readTree(new File("/home/op/Test/jsondata/loans.json"));
但是,如果我尝试使用带有 JsonNode 的实时安全 Web URL
例如
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,因为我只提取两个键:遍历大型数组中多个对象的值对。