2012-07-18 51 views
0

我在這裏有一個問題。假設在網站上託管的JavaScript中實現了一個基本的計算器(我用Google搜索了它並找到了一個例子,並找到了這個例子:http://www.unitsconverter.net/calculator/)。我想要做的是製作一個程序,打開這個網站,輸入一些價值並獲得返回值。因此,在我們的網站計算器,程序: - 打開網站 - 進入操作 - 進入操作 - 進入操作 - 檢索結果 注:事情應該無需任何顯示的完成用戶(例如瀏覽器)。訪問使用C#的網站#

我做了一些搜索,發現有關HttpWebRequest和HttpWebRespond。但我認爲這些可以用來發布數據到服務器,這意味着,我發送數據的文件必須是php,aspx或jsp。但Javascript是客戶端。所以,我認爲在這種情況下他們對我來說毫無用處。

任何幫助?

更新: 我已成功地開發使用WebBrowser控件工具(在System.Windows.Forms的發現) 在這裏,網絡機器人的代碼示例:

webBrowser1.Navigate("LinkOfTheSiteYouWant"); // this will load the page specified in the string. You can add webBrowser1.ScriptErrorsSuppressed = true; to disable the script in a page 
    webBrowser1.Document.GetElementById("ElementId").SetAttribute("HTMLattrbute", "valueToBeSet"); 

這些都是主要的方法我曾經做過我想做的事。 我發現這段影片有用:http://www.youtube.com/watch?v=5P2KvFN_aLY

+3

自己在程序中執行計算不是更容易嗎?我無法看到在C#中無法完成的提及的計算器的任何功能。 – Daniel 2012-07-18 16:14:24

+0

當然,這樣的程序的目的是沒有得到計算結果。我知道如何實現這樣的計算器。 – joker 2012-07-18 16:16:43

+0

好的,我設法解決了我的問題。我開發了使用計算器的網絡機器人:http://www.borderlinx.com/tcc/ 我使用WebBrowser對象, 導航方法導航到頁面 Document屬性以獲取元素。 我將編輯主帖 – joker 2012-07-24 13:04:04

回答

3

我想你可以使用類似WatiN管道用戶的輸入/輸出從您的應用程序的網站並返回結果,但作爲其他評論者所指出的,這種時候事情的價值你可以寫出你自己的計算器來逃避我。

0

您正在尋找的東西更類似於Web服務。您提供的頁面看起來並不像它接受HTTP POST中的任何數據,並且在源代碼中沒有任何有意義的信息可供您使用。例如,如果你想以編程方式使搜索eBay拍賣,你可以弄清楚如何正確發送數據給它如:

http://www.ebay.com/sch/i.html?_nkw=http+for+dummies&_sacat=267&_odkw=http+for+dummies&_osacat=0 

,然後通過你正在尋找的信息HTTP響應一下。你可能會需要創建一個正則表達式匹配你要找的一樣,如果你想知道有多少結果的標記,你會搜索該位標記的HTTP響應:

<div class="alt w"><div class="cnt">Your search returned <b>0 items.</b></div></div> 

由於儘管客戶端/ JavaScript的東西,你只是普通的不會做任何事情就像你要去的東西。

0

這是一個API問題:「遠程網站是否公開了所需功能的API?」。

那麼公開交互式API的Web資源就稱爲Web服務。有很多例子(用於遺傳的Google Maps)。

您可以訪問API - 取決於條款&服務的條件 - 通過客戶端。客戶端的性質取決於您訪問的Web服務的種類。

所以,如果有一個名爲「計算器」可訪問的Web服務,那麼你就可以訪問該服務,併爲istance,調用和方法。

在你的例子中,計算器是一個Javascript實現,所以它不是一個Web服務,它不能通過HTTP請求訪問。儘管如此,它的實現仍然可以訪問:計算器實現的是javascript file。您可以隨時在您的網站中包含該文件並通過javascript訪問其功能(始終介紹條款和條件!!)。

一個非常普遍的例子是存儲在Google Libraries中的jQuery庫。