как получить данные из URL в Android Studio - PullRequest
0 голосов
/ 09 июня 2019

Я хочу получить данные из URL-адреса и отобразить их в textView, но после получения отображаются только HTML-коды.

Я использую обучающее видео, но мой результат неверен.

Iтоже использовал другие методы, но все результаты одинаковы и показывают только html-коды.

MainActivity:

public static final String SAMPLE_URL = "http://nimatest.epizy.com/ffff.json";

findViewById(R.id.btn_get_data).setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           new TaskGetData().execute(SAMPLE_URL);
       }
   });

public class TaskGetData extends AsyncTask<String , String , String>{

@Override
protected void onPreExecute() {
    textView.append("Get data ...\n\n");
}

@Override
protected String doInBackground(String... params) {
    return MyHttpUtils.getDataHttpUriConnection(params[0]);
}

@Override
protected void onPostExecute(String result) {
    textView.append(result + "\n");
    }
}

MyHttpUtils:

public static String getDataHttpUriConnection(String uri){
    try {
        URL url = new URL(uri);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        String result = inputStreamToString(con.getInputStream());
        return result;
    } catch (IOException e) {
        e.printStackTrace();
    }

    return null;
}

public static String inputStreamToString(InputStream stream)  {
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
    StringBuilder sb = new StringBuilder();
    String line = "";
    try
    {
        while ((line = reader.readLine()) != null)
        {
            sb.append(line);
            sb.append("\n");
        }
        return sb.toString();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return null;
}

a busy cat

1 Ответ

1 голос
/ 09 июня 2019

Ваш код в порядке. Он читает HTML с URL

Этот сайт требует Javascript для работы

HttpUrlConnection не использует и не отображает динамические веб-страницы, созданные с помощью Javascript, только статическое HTML-содержимое

Попробуйте другую конечную точку для данных JSON ...

Кроме того, обратите внимание на использование правильной библиотеки HTTP для Android, а не на использование AsyncTask, например Okhttp или Volley

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...