Извлечение содержимого HTML из веб-просмотра POST - Java - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь извлечь содержимое HTML из веб-просмотра.Я нашел интересную тему по stackoverflow, но все эти ответы загружают URL, чтобы получить HTML-контент.Здесь мне нужно извлечь содержимое HTML веб-страницы, созданной методом POST.Используя приведенный ниже метод java, загружаемое HTML-содержимое будет просто (потому что оно загружает URL-адрес внутри метода, вместо непосредственного извлечения html-содержимого из веб-просмотра)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not understand.</p>


private static class RetrieveHTML extends AsyncTask<String, String, String> {
    private static String htmlContent;

    protected String doInBackground(String... url) {
        return getRemoteContent(url[0]);
    }

    protected void onProgressUpdate(Integer... progress) {
    }

    protected void onPostExecute(Long result) {
    }

    private static String getRemoteContent(String url)
    {
        HttpPost pageGet = new HttpPost(url);
        HttpClient client = new DefaultHttpClient();

        ResponseHandler<String> handler = new ResponseHandler<String>()
        {
            public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException
            {
                HttpEntity entity = response.getEntity();
                String html;

                if (entity != null)
                {
                    html = EntityUtils.toString(entity);
                    return html;
                }
                else
                {
                    return null;
                }
            }
        };

        String pageHTML = null;
        try
        {
            pageHTML = client.execute(pageGet, handler);
            //if you want to manage http sessions then you have to add localContext as a third argument to this method and have uncomment below line to sync cookies.
            //syncCookies();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

        // you can filter your html content here if you wish before displaying
        // in webview
        try {
            Log.d("TEST", pageHTML);
        }
        catch (Exception e){
            e.printStackTrace();
        }
        htmlContent = pageHTML;
        return pageHTML;
    }

}

Заранее спасибо

РЕДАКТИРОВАТЬ: я забыл сказать, почему я пытаюсь сделать это: я адаптирую веб-сайт рабочего стола в приложение для Android (в основном показывает веб-просмотр мобильных шаблонов).У меня есть карта на моем рабочем столе, и на ней размещаются маркеры (эти маркеры передаются через строку json через Flask + jinja).У меня появилась идея спрятать эти маркеры в скрытом теге HTML.Затем я мог бы извлечь html и затем проанализировать правую часть этого html-контента, чтобы вставить эту строку json в мое java-приложение (а затем использовать метод google-maps, который существует в android studio)

1 Ответ

0 голосов
/ 13 июня 2018

Наконец я решил сделать то, что хотел, другим способом.Каждый раз, когда я делаю этот пост-запрос, я генерирую временный html-файл, в который я записываю всю информацию, необходимую для получения в моем Java-приложении.Затем я могу вызвать эту страницу из Java (используя метод выше), потому что нет данных для повторной отправки (так как это не пост-сгенерированная страница)

...