powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как на java запустить сайт и обработать ответ.
15 сообщений из 15, страница 1 из 1
Как на java запустить сайт и обработать ответ.
    #39773663
artur1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть определенный сайт при входе на его страницу возвращается ответ в виде файла json.
Я пишу web приложение c использованием сервлетов.
Мое приложение находится по адресу HTTP://мое_приложение.
В приложение есть кнопка при нажатии на которую срабатывает переход на страницу мое_приложение/страница_запроса.
Переход на страницу запроса у меня слушает определенный сервлет.
Так вот нужно чтобы этот сервлет автоматом выполнил действия:
1) вход на определенный сайт - тот вернет в виде json. Например https://api.vk.com/method/friends.search
2) дальше сервлет должен вытащить данные из json и сформировать на их основе выводимую страницу.

У меня вопрос только по первому пункту: с помощью какого метода можно войти на сайт и получить от него сразу ответ?
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39773760
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artur1234,

URLConnection ?
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774179
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой код примерно.


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.*;
import com.github.underscore.lodash.U;

public class HelloWorld extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setHeader("Content-Type", "text/javascript");
        resp.setHeader("Cache-Control", "no-cache, must-revalidate");
        resp.setHeader("Server", "Microsoft-IIS/10.0");
        resp.setCharacterEncoding("UTF-8");
        final String callback = req.getParameter("callback") == null ? "" : req.getParameter("callback");
        final String url = req.getParameter("url") == null ? "" : req.getParameter("url");
        StringBuilder builder = new StringBuilder();
        builder.append(callback).append("(\n");
        final Map<String, Object> json = new LinkedHashMap<>();
        json.put("server", "xml-json.herokuapp.com");
        json.put("remote_host", req.getRemoteAddr());
        json.put("url", url);
        final List<String> html = new ArrayList<>();
        try {
            U.FetchResponse response = U.fetch(url);
            if (response.getStatus() == 301) {
                response = U.fetch(response.getHeaderFields().get("Location").get(0));
            }
            if (response.getStatus() == 200) {
                html.add(response.text());
            } else {
                Map<String, Object> error = new LinkedHashMap<>();
                error.put("message", "Error " + response.getStatus() + " while loading url: " + url);
                html.add(url.endsWith("xml") ? U.toXml(error) : U.toJson(error));
            }
        } catch (Exception ex) {
            Map<String, Object> error = new LinkedHashMap<>();
            error.put("message", "Error " + ex.getMessage() + " while loading url: " + url);
            html.add(url.endsWith("xml") ? U.toXml(error) : U.toJson(error));
        }
        json.put("html", html);
        builder.append(U.toJson(json)).append("\n)");
        resp.setHeader("Content-Length", "" + builder.toString().getBytes().length);
        resp.getWriter().print(builder.toString());
    }

    public static void main(String[] args) throws Exception{
        Server server = new Server(Integer.valueOf(System.getenv("PORT")));
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        server.setHandler(context);
        context.addServlet(new ServletHolder(new HelloWorld()),"/*");
        server.start();
        server.join();   
    }
}




Хорошего Вам дня!
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774180
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оо вот это код. аж прослезился. из музея скачали?
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774185
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тож не понял к чему он, адочек конечно. Понял, что давно не читал java-портянки, не жалею
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774187
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин по привычке рекламирует свой Underscore.

А это - шутка йумора.
Код: java
1.
resp.setHeader("Server", "Microsoft-IIS/10.0");
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774293
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никя тож не понял к чему он, адочек конечно. Понял, что давно не читал java-портянки, не жалею
уточнение "понял что давно не читал java-портянки 19-тилетней давности".
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774294
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нормальный на джаве код можно писать. просто юзать надо инструментарий не того возраста в котором домой из армии возвращаются.
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774298
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня тайное подозрение что данное решение будет выглядеть лучше на Node.JS.

И компактнее. И безо всяких "библиотек|.
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774326
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

а у меня есть подозрение, что на вопрос о Java можно было бы и не отвечать туманным намёком на знание вами какой-то фигни, не относящейся к Java.
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774330
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov,
Код: java
1.
2.
3.
resp.setHeader("Content-Type", "text/javascript");
resp.setHeader("Cache-Control", "no-cache, must-revalidate");
resp.setHeader("Server", "Microsoft-IIS/10.0");



Заголовок Content-Type должен быть "application/json".
Остальные заголовки в примере могут отличаться.
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774331
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artur1234,

1. spring web
2 проверить, что подтянулся MappingJackson2HttpMessageConverter

Код: java
1.
2.
RestTemplate restTemplate = new RestTemplate();
R r =  restTemplate.getForEntity(<...>)
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774763
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MValentin Kolesnikov,
Код: java
1.
2.
3.
resp.setHeader("Content-Type", "text/javascript");
resp.setHeader("Cache-Control", "no-cache, must-revalidate");
resp.setHeader("Server", "Microsoft-IIS/10.0");



Заголовок Content-Type должен быть "application/json".
Остальные заголовки в примере могут отличаться.

Для этой программы мне нужен был именно JavaScript тип.

Хорошего Вам дня!
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39774776
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсть у меня тайное подозрение что данное решение будет выглядеть лучше на Node.JS.

И компактнее. И безо всяких "библиотек|.
у ноды просто эти потршки чуть поглубже спрятаны.
...
Рейтинг: 0 / 0
Как на java запустить сайт и обработать ответ.
    #39775292
artur1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
про urlconnection - не совсем подходит. Он возвращает полностью страницу. А если в контакте не зарегистрирован то должна появится страница авторизации где пользователь авторизируется а потом уже после авторизации файл в формате Json - если бы не не страница авторизации то urlconnection полностью подходит. А так он возвращает страницу авторизации в html виде. Но я эту проблему решил обработку метода https://oauth.vk.com/authorize? - я переправляю переправляю на отдельный сервлет с помощью параметра redirect_uri.
Ну а все другие методы из api вк можно вызывать с помощью url connection.

Всем спасибо еще увидимся.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как на java запустить сайт и обработать ответ.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]