Как получить данные из URL-адреса, который не является объектом JSON в AndroidView ListView?

У меня есть этот URL, и я хочу получить все данные, присутствующие здесь, в виде списка Android, я знаю только, как извлечь данные из объекта JSON, но здесь я даже не знаю формат этих данных, присутствующих в URL.

Формат URL:
tvg-logo = URL-адрес логотипа chanel

group-title = категория, в которой вам нужно отобразить канал (только для фильма, а не для ТВ)

После "," у вас есть название канала

И после имени у вас есть URL видео

Как я могу проанализировать свои данные из URL, чтобы я мог сделать представление списка следующим образом: IMG

6 ответов

Если вы используете модернизацию в качестве сетевой библиотеки, вы можете передать "ResponseBody" в функцию обратного вызова API. В методе 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();
}

Может быть, это будет полезно для вас.

Эта функция будет получать данные из URL, и вы можете разделить данные в соответствии с вашими требованиями и заполнить пользовательский интерфейс.

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();
        }
    }

Я думаю, вы должны разделить текст строки специальными символами. и держать их в массиве. например, специальный символ может быть "[пробел]" или "," или "#". Я надеюсь помочь вам

Попробуйте с приведенным ниже кодом, здесь я извлекаю только URL из ответа API

    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());
}

Таким образом, вы можете проанализировать данные и обновить свой список.

Примечание:- Вам необходимо написать собственную логику для анализа этих данных, проверяя шаблон данных.

Результат кажется легко разобрать на самом деле. Просто посмотрите на шаблон.#SOMETHING tvg-logo = "logo" tvg -ategorie="что-то"

Используйте регулярные выражения для разделения нужного вам шаблона. Regex

Решение для этого:

  1. Либо вы можете скопировать данные из библиотек Python, таких как Scrapy или Beautiful Soup, а затем преобразовать их в JSON и читать с Android.

  2. Разберите html с помощью jsoup lib ( https://jsoup.org/) и смоделируйте данные в желаемом формате.

Другие вопросы по тегам