首页 > 解决方案 > 将 https 添加到缺少的数组字符串中?

问题描述

我正在为一个没有官方 API 但希望该应用程序从他的网站提取视频链接的客户编写一个应用程序,所以我使用 jsoup 编写了一个逻辑。一切似乎都很好,除了一些链接不以 https 开头,所以我试图在 URL 之前添加它。

这是我的代码:

          new Thread(() -> {
                    final StringBuilder jsoupStr = new StringBuilder();
                    String URL = "https://example.com" +titleString
                            .replaceAll(":", "")
                            .replaceAll(",", "")
                            .replaceAll(" ", "-")
                            .toLowerCase();

                    Log.d("CALLING_URL", " " +URL);

                    try {
                        Document doc = Jsoup.connect(URL).get();
                        Element content = doc.getElementById("list-eps");
                        Elements links = content.getElementsByTag("a");
                        for (Element link : links) {
                            jsoupStr.append("\n").append(link.attr("player-data"));
                        }
                    } catch (IOException e) {
                        e.getMessage();
                    }

                    String linksStr = jsoupStr.toString().trim();
                    if (!linksStr.startsWith("https://")) {
                        linksStr = "https:" + linksStr;
                    }
                    String[] links_array = linksStr.split("\n");
                    arrayList.addAll(Arrays.asList(links_array));

                }).start();

该网站每个视频包含大约 10 个链接,但有些链接以“//”开头,而不是 https。

此代码添加了 https,但仅适用于它发现丢失的第一个链接。

if (!linksStr.startsWith("https://")) {
    linksStr = "https:" + linksStr;
}

标签: javaandroidjsoup

解决方案


您需要遍历最终数组以将函数应用于所有链接。

String[] links_array = linksStr.split("\n");
for(int i = 0; i < length; i++)
    if(!links_array[i].startsWith("https://"))
        links_array[i] = "https:" + links_array[i];

推荐阅读