Как передать данные с веб-страницы в приложение? - PullRequest
1 голос
/ 23 апреля 2010

Попытка выяснить, как я могу передать некоторые данные / поля с веб-страницы обратно в мое приложение. Это должно работать на Windows / Linux / Mac, поэтому я не могу использовать DLL или ActiveX. Есть идеи?

Вот поток: 1. Приложение собирает некоторые данные и затем отправляет их на веб-страницу, используя POST, который либо встроен в приложение, либо открывает новое окно IE. 2. Веб-страница оказывает некоторые услуги, а затем должна передать результаты обратно приложению.

Единственный способ сделать это, о котором я могу подумать, - это записать результаты локально со страницы в файл cookie или что-то в этом роде и иметь монитор приложения для определенного файла в этой папке.

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

Кто-нибудь может предложить какие-нибудь лучшие решения для этого?

Спасибо

Ответы [ 5 ]

2 голосов
/ 23 апреля 2010

Мое предложение:

Разбейте логику обработки из веб-страницы на отдельную сборку.Затем вы можете создать веб-службу, которая обрабатывает всю обработку без необходимости передавать управление на страницу.

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

Обновление

Поскольку страница предоставлена ​​третьей стороной, вы, очевидно, не сможете ничего вспомнить.Следующим лучшим вариантом будет обработать весь веб-запрос, внутренний для вашего приложения (вместо создания нового окна).

С помощью этого метода вы можете получить необработанный HTTP-ответ (и разметку страницы) и работать сэто напрямую.Затем вы можете проанализировать поток ответов и собрать из него необходимые данные.

0 голосов
/ 23 апреля 2010

Возможно, продукт iOpus iMacros может быть тем, что вы ищете. Их продукт iMacros довольно хорош в сборе и публикации данных. Я использовал его для условного анализа данных, и для множества задач доступно множество примеров.

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

Вы можете посмотреть на некоторые примеры и посмотреть, соответствует ли он вашим потребностям здесь: http://www.iopus.com/imacros/support/

Здесь также есть бесплатное дополнение к Firefox: http://www.iopus.com/imacros/firefox/

0 голосов
/ 23 апреля 2010

Другой вариант заключается в том, что в вашем приложении реализован сервер XML-RPC , который можно вызвать с веб-страницы с помощью PHP , Python или любого другого средства создать сайт

REST-сервер тоже сделает эту работу ...

0 голосов
/ 23 апреля 2010

То, что

Веб-страница размещена третьей стороной и они должны делать обработка на своих серверах.

важен для этого вопроса.

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

0 голосов
/ 23 апреля 2010

Во время выполнения HTTP-запроса вы должны быть в состоянии получить текст, возвращаемый страницей. Например, если ваш HTTP POST должен был попасть в сервлет Java, будет запущен метод doPost (), и вы затем выполните свои действия, затем вы можете использовать объект PrintWriter из объекта Response (PrintWriter out = response.getWriter () ;) и напиши текст обратно в вызывающее приложение. Я не уверен, что это помогает?

...