android - 如何从网站读取值(value)

标签 android json jsoup

我只想读取 (-1) 值,这是网站上唯一的值,但我无法获取该值 任何伙伴都可以指导我如何做到这一点。当我将它粘贴到网络浏览器中时,我得到了 API url 的值,而 android 没有获取它。 API 链接如下。

Link OF API

我正在尝试的代码是:

    private void getWebsite() {
    new Thread(new Runnable() {
        @Override
        public void run() {
            final StringBuilder builder = new StringBuilder();

            try {
                Document doc = Jsoup.connect("https://api.thingspeak.com/channels/411172/feeds.json?results=1").get();
                String title = doc.title();
                Elements links = doc.select("[pre]");

                builder.append(title).append("\n");

                for (Element link : links) {
                    builder.append("\n").append("Link : ").append(link.attr("pre"))
                            .append("\n").append("Text : ").append(link.text());
                }
            } catch (IOException e) {
                builder.append("Error : ").append(e.getMessage()).append("\n");
            }

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    result.setText(builder.toString());
                }
            });
        }
    }).start();
}

在浏览器中调用 Web API 的屏幕截图 Here is the picture of Web API call 我得到的错误是 Error: HTTP error fetching URL

最佳答案

我看到你的 API 的响应是 JSON 格式的,你必须按如下方式修改你的代码

private void getWebsite() {
    new Thread(new Runnable() {
        @Override
        public void run() {
            final StringBuilder builder = new StringBuilder();

            try {
                Document doc = Jsoup.connect("https://api.thingspeak.com/channels/411172/feeds.json?results=1")
                        .ignoreContentType(true)
                        .get();
                String json = doc.body().text();
                builder.append(json);

            } catch (IOException e) {
                builder.append("Error : ").append(e.getMessage()).append("\n");
            }

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    result.setText(builder.toString());
                }
            });
        }
    }).start();
}

关于android - 如何从网站读取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51867799/

相关文章:

android - 在导航图的第一个屏幕上的工具栏上显示后退按钮

java - 安卓/Java : accessing the same SQLite DB object from multiple activities

java - 如何通过删除其标签和特殊字符来仅获取超链接?

java - 无法使用http请求获取页面

android - 如何使用java邮件从android发送电子邮件

php - 用PHP进行JSON替换

c# - 如何使用 JSON.Net 反序列化此 json 数据?

c# - 使用以复杂类型为键的对象引用和字典将复杂类型序列化/反序列化为 Json

java - 只获取嵌套表的父行

android - 从 NFC 标签读取数据 (IsoDep)