Взаимодействие php и java (не js)

189
08 февраля 2018, 16:54

Есть программа, большую часть своей жизни она сидит в трее и должна иногда мигать иконкой, при двойном клике открывать вебкит. Мигает она или нет зависит от значения на пхп странице (там одно слово), например если там написано "clear" то иконка не мигает, если иное слово то должна мигать.Не могу понять, как можно вытянуть значение со странички. Вебкит написан на javafx, работа трея на awt.

    private void createAndShowGUI() {
            if (!SystemTray.isSupported()) {
                System.out.println("Don't tray!");
                return;
            }
            final PopupMenu popup = new PopupMenu();
            final TrayIcon trayIcon =
                    new TrayIcon(createImage("image/bulb.gif", "tray icon"));
            trayIcon.setImageAutoSize(true);
            final SystemTray tray = SystemTray.getSystemTray();
            MenuItem exitItem = new MenuItem("Выход");
            popup.add(exitItem);
            trayIcon.setPopupMenu(popup);
            exitItem.addActionListener(new AbstractAction() {
                public void actionPerformed(ActionEvent e) {
                    tray.remove(trayIcon);
                    System.exit(0);
                }
            });
            try {
                tray.add(trayIcon);
            }   catch ( AWTException e) {
                System.out.println("Icon not be added.");
                return;
            }
            trayIcon.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    Application.launch(webwindow.class);
    //                Platform.runLater();
                }
            });

----------

    public class webwindow extends Application {
        private Scene scene;
        @Override public void start(Stage stage) {
            stage.setTitle("???");
            scene = new Scene(new Browser(),350,350);
            stage.setScene(scene);
            stage.show();
            Platform.setImplicitExit(false);
        }
        public static void main(String[] args){
            launch(args);
        }
    }
    class Browser extends Region {
        final WebView browser = new WebView();
        final WebEngine webEngine = browser.getEngine();
        public Browser() {
            getStyleClass().add("browser");
            webEngine.load("???");
            getChildren().add(browser);
        }
        private Node createSpacer() {
            Region spacer = new Region();
            HBox.setHgrow(spacer, Priority.ALWAYS);
            return spacer;
        }
        @Override protected void layoutChildren() {
            double w = getWidth();
            double h = getHeight();
            layoutInArea(browser,0,0,w,h,0, HPos.RIGHT, VPos.BOTTOM);
        }
    }

Это Main.java и webwindow.java

Код кривой, наверно еще нужно как-то реализовать многопоточность для работы трея и веба (при клике на трей открывается сцена и перекрывает собой работу трея), это немножко не по теме. Помогите с пхп сладить, гугль не помог только js выдает место java. Ну и если кто знает как лучше переписать, или переделать все это, буду признателен за советы. В java около месяца, строго не судите.

Answer 1

Используем BufferedReader:

    BufferedReader br = null;
    try {
        URL url = new URL("http://www.stranichka.com");
        br = new BufferedReader(new InputStreamReader(url.openStream()));
        String line;
        StringBuilder sb = new StringBuilder();
        while ((line = br.readLine()) != null) {
            sb.append(line);
            sb.append(System.lineSeparator());
        }
        System.out.println(sb);
    } finally {
        if (br != null) {
            br.close();
        }
    }

Или JSoup, или HTMLCleaner или Apache HttpClient или еще чего-нибудь.

READ ALSO
Как записать данные из переменной в файл?

Как записать данные из переменной в файл?

Как записать данные из double probinres в FILENAME?

210
Вылетает приложение. Работа с sqlite

Вылетает приложение. Работа с sqlite

Почему вылетает приложениеНачинаю работать с sqlite, простой вывод данных бд в listView не работет - приложение просто вылетает

197
Не печатаемые символы в заголовке окна eclipse (DBeaver)

Не печатаемые символы в заголовке окна eclipse (DBeaver)

Не печатаемые символы в заголовке окна eclipse, на скриншотеЛокаль ru_RU

312
По IDE Eclipse, горячие клавиши

По IDE Eclipse, горячие клавиши

Есть в Eclipse горячие клавиши комментирования кода(строки, блока) Так вот, они не работаютНикак

196