1

我有 这个 URL,我想在 android 列表视图中获取这里存在的所有数据,我只知道如何从 JSON 对象中检索数据,但在这里我什至不知道 URL 中存在的这些数据的格式。

URL的格式为:
tvg-logo = logo chanel的url

group-title = 您需要显示频道的类别(仅适用于电影而不适用于电视)

在“,”之后是频道的名称

在名称之后你有视频的 URL

如何从 URL 解析我的数据,以便我可以制作这样的列表视图: 图像

4

6 回答 6

0

此函数将从 URL 获取数据,您可以根据需要拆分数据并填充 UI。

void fetchDataFromUrl() {
        try {
            URL oracle = new URL("http://cinecosta.com/api_tv.php?pass=yojeju123");
            URLConnection yc = oracle.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    yc.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null)
                System.out.println(inputLine);
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
于 2018-07-04T12:25:28.713 回答
0

结果实际上似乎很容易解析。只需查看模式即可。 #SOMETHING tvg-logo="logo" tvg-categorie="something"

使用正则表达式拆分您想要的模式。 正则表达式

于 2018-07-04T12:43:27.657 回答
0

试试下面的代码,这里我只从 api 响应中提取 url

    String strData = "#EXTM3U #EXTINF:-1 tvg-logo=\"http://www.cinecosta.com/image-appletv/tv/tf1-tv.png\" tvg-categorie=\"TV\",TF1 http://217.182.164.103:25461/live/YnAmpNBQUX/YUCgme6CXS/314.ts #EXTINF:-1 tvg-logo=\"http://www.cinecosta.com/image-appletv/tv/france2.png\" tvg-categorie=\"TV\",France 2 http://217.182.164.103:25461/live/YnAmpNBQUX/YUCgme6CXS/315.ts #EXTINF:-1 tvg-logo=\"http://www.cinecosta.com/image-appletv/tv/france3.png\" tvg-categorie=\"TV\",France 3 http://217.182.164.103:25461/live/YnAmpNBQUX/YUCgme6CXS/316.ts #EXTINF:-1 tvg-logo=\"http://www.cinecosta.com/image-appletv/tv/france4.png\" tvg-categorie=\"TV\",France 4 http://217.182.164.103:25461/live/YnAmpNBQUX/YUCgme6CXS/317.ts #EXTINF:-1 tvg-logo=\"http://www.cinecosta.com/image-appletv/tv/france5.png\" tvg-categorie=\"TV\",France 5 http://217.182.164.103:25461/live/YnAmpNBQUX/YUCgme6CXS/318.ts";

private void convertDataToArray() {
    String[] splitArray = strData.split("#EXTINF:-");
    ArrayList<String> arrstrUrl = new ArrayList<String>();
    ArrayList<String> arrstrMainUrl = new ArrayList<String>();
    ArrayList<String> arrstrCategory = new ArrayList<String>();
    ArrayList<String> arrstrName = new ArrayList<String>();
    for (int i = 1; i < splitArray.length; i++) {
        System.out.println("Final=>" + splitArray[i]);
        arrstrUrl.add(splitArray[i].split("1 tvg-logo=")[1].split(" ")[0]);
        arrstrMainUrl.add("http" + splitArray[i].split("1 tvg-logo=")[1].split("tvg-categorie=")[1].split("http")[1]);
        arrstrName.add(splitArray[i].split("1 tvg-logo=")[1].split("tvg-categorie=")[1].split(",")[0]);
        arrstrCategory.add(splitArray[i].split("1 tvg-logo=")[1].split("tvg-categorie=")[1].split(",")[1].split("http")[0]);
    }
    System.out.println("Final Image=>" + arrstrUrl.toString());
    System.out.println("Final Main=>" + arrstrMainUrl.toString());
    System.out.println("Final Name=>" + arrstrName.toString());
    System.out.println("Final Category=>" + arrstrCategory.toString());
}

因此,您可以通过这种方式解析数据并更新列表视图。

注意:-您需要通过检查数据模式编写自己的逻辑来解析此数据。

于 2018-07-04T12:36:16.190 回答
0

解决方案是:

  1. 您可以从 python 库(如 scrapy 或 beautiful soup)中抓取数据,然后将其转换为 json 并从 android 读取。

  2. 使用 jsoup 库 ( https://jsoup.org/ )解析 html,并以您想要的格式对数据进行建模。

于 2018-07-05T05:51:08.660 回答
0

我想,你必须用特殊字符分割字符串文本。并将它们保存在一个数组中。例如,特殊字符可能是“[空格字符]”或“,”或“#”。我希望能帮助你

于 2018-07-04T12:17:06.177 回答
0

如果您将改造用作网络库,则可以在 api 回调函数中传递“ResponseBody”。在 onSuccess 方法中,我们将获取正文并使用以下代码。

接口类:

Call<ResponseBody>  yourFuncationName();


ResponseBody data = (ResponseBody) model.body();
            String json = getStringData(data.byteStream());

功能是

public String getStringData(InputStream inputStream) {
    BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
    StringBuilder total = new StringBuilder();
    String line;
    try {
        while ((line = r.readLine()) != null) {
            total.append(line).append('\n');
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return total.toString();
}

也许这对你有帮助。

于 2018-07-04T12:52:15.287 回答