2012-07-18 50 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库。