首页 > 解决方案 > 如何使用 Java 访问 ISBNDB 以查找一本书的信息?是否可以在不使用 Maven 或 Gradle 的情况下使用 ISBNDB api?

问题描述

我正在尝试访问 ISBNDB 并获取有关一本书的所有相关数据的信息,以便我可以从该数据中为学校项目制作参考书目。但是,我无法通过 Java 访问 ISBNDB 和使用 ISBNDB API。我以前从未使用过 Maven 或 Gradle,那么是否可以在不使用 Maven 或 Gradle 的情况下使用 ISBNDB API?如果是这样,我可以获取一些示例代码来了解如何在 Java 中使用 ISBNDB API?

我尝试使用 ISBNDB API 中的示例代码并将其插入我的 Java 项目,但它没有编译或正常工作。冒号似乎不应该出现在 setRequestProperty 方法中,因为当我尝试将确切的代码放入我的编译器(IntelliJ)时,它不会编译,它只会生我的气。我在 ISBNDB 网站上制作了一个 Rest Key 并将其放入我的代码中,即“YOUR_REST_KEY”。我没有从示例中更改它。我尝试将冒号更改为逗号,但这无助于编译代码。

private static HttpURLConnection con;

public static void main(String[] args) throws MalformedURLException,
        ProtocolException, IOException {

    String url = "https://api2.isbndb.com/book/9781934759486";

    try {

        URL myurl = new URL(url);
        con = (HttpURLConnection) myurl.openConnection();
        con.setRequestProperty("Content-Type", "application/json");
        con.setRequestProperty("Authorization": "YOUR_REST_KEY");
        con.setRequestMethod("GET");

        StringBuilder content;

        try (BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()))) {

            String line;
            content = new StringBuilder();

            while ((line = in.readLine()) != null) {
                content.append(line);
                content.append(System.lineSeparator());
            }
        }

        System.out.println(content.toString());

    } finally {

        con.disconnect();
    }
}

我预计要打印的内容是 ISBN 中有关该书的所有信息(如作者、标题、出版商、出版日期等),但只出现编译错误,没有任何内容输出到控制台.

标签: javaisbn

解决方案


我发现出了什么问题,那就是为了使用这个 API,你必须为此付费,而当我尝试使用它时,我并没有意识到这一点。我以为它是免费的,但事实证明它不是,所以我没有使用 API 的权限。


推荐阅读