2010-04-23 116 views
1

試圖找出一種方法,我可以將一些數據/字段從網頁傳遞迴我的應用程序。這需要在Windows/Linux/Mac上運行,所以我不能使用DLL或ActiveX。有任何想法嗎?如何將數據從網頁傳遞到應用程序?

以下是流程: 1.應用程序收集一些數據,然後使用POST嵌入應用程序或彈出一個新的IE窗口將其發送到網頁。 2.網頁執行一些服務,然後需要將結果中繼給應用程序。

做到這一點,我能想到的唯一方法是從頁面本地從cookie中寫入結果或類似的東西,並讓應用程序監視器在該文件夾中的特定文件。

或者,在將控件傳遞給頁面以及頁面完成後,Web服務將返回數據,以製作應用程序點擊的Web服務。這聽起來像它可能有一些性能缺陷。

任何人都可以提出任何更好的解決方案嗎?

感謝

回答

2

我的建議:

中斷處理邏輯從網頁到一個單獨的組件。然後,您可以創建一個Web服務來處理所有處理,而無需將控制權交給頁面。

然後,您的應用程序可以直接調用Web服務,然後序列化結果並很容易地處理數據。

更新

由於網頁是由第三方提供的,你顯然不能破壞任何東西了。接下來最好的辦法是處理應用程序內部的整個Web請求(而不是彈出一個新窗口)。

使用此方法,您可以獲取原始HTTP響應(和頁面標記)並直接使用它。然後,您可以解析Response流並從中收集所需的數據。

+0

問題是,該網頁是由託管第三方,他們需要在他們的服務器上進行處理。我無法在本地處理這些數據。 – markiyanm 2010-04-23 14:58:38

+0

賈斯汀 - 我喜歡你的方法更好:) – Sijin 2010-04-23 15:04:30

+0

問題是,正在處理的數據是信用卡信息,我試圖卸載到第三方,因爲這是他們做的,我想留在它之外。我目前通過使用Web服務來支持它,但是這使我保持信用卡規定的範圍。如果我使用他們的頁面,我可以避免這種情況。 – markiyanm 2010-04-23 15:07:14

0

執行HTTP請求期間,您應該能夠檢索頁面返回的文本。例如,如果您的HTTP POST命中Java servlet,則doPost()方法將被觸發,然後執行您的操作,然後可以使用Response對象中的PrintWriter對象(PrintWriter out = response.getWriter() ;)並將文本寫回調用應用程序。我不確定這有幫助嗎?

0

網頁由第三方託管 ,他們需要在自己的服務器上做的 處理的事實。

對這個問題很重要。

我喜歡讓應用程序在將數據傳遞到第三方網頁後調用web服務的想法。如果您擔心在等待此Web服務的結果時阻止應用程序,則可以始終異步調用Web服務。

0

另一種選擇是,你的應用程序中使用PHPPython或任何你用它來構建網站

休息服務器XML-RPC server,可以從網頁調用將做的工作還...

實現
0

也許iOpus產品iMacros可能是你正在尋找的。他們的產品iMacros在收集數據和發佈數據方面非常出色。我已經將它用於條件數據挖掘,並且有很多示例可用於各種任務。

我會承認有一點學習曲線,但它在與URL,表單和其他軟件的交互方面確實非常強大。

你可以看一些例子,看看它是否符合您的需求在這裏: http://www.iopus.com/imacros/support/

還有一個免費的Firefox插件在這裏: http://www.iopus.com/imacros/firefox/

相關問題