0

我有一个 PHP 页面,它通过 GET 获取一个变量,然后根据该变量从数据库中提取一些信息。一旦完成服务器端的工作,就会有一些 javascript 运行并获取提供的数据,并使用 3rd 方 API 创建一个 .png 图像,然后使用对另一个 PHP 页面的 AJAX POST 调用将该图像保存到我的服务器。

这一切都很好,但我现在想做的是自动执行对该 PHP 页面的一些调用。也就是说,假设我有 100 个这样的变量要通过,我想,最好是在 Java 中使用 for 循环,依次调用带有每个变量的 PHP 页面。

问题是客户端的javascript。它不会URLConnection在 Java 中以简单的方式执行。似乎我需要某种浏览器复制器或某种方式让 java 像在浏览器中调用 PHP 一样?

或者,我可以用第三个 PHP 页面代替 Java 作为控制器,但我面临着让 javascript 执行的同样问题。

我错过了一些简单的事情吗?这个设置是不可能的吗?如果可能的话,我真的更喜欢用 Java 将它折叠到我已经运行的其他代码中。


让我尝试添加更多细节,而不会过多地陷入困境。有一个 PHP 文件getData.php通过 GET 获取 ID 号。所以我称之为./getData.php?id=someId

该 PHP 文件获取 ID,转到我的数据库并检索一些数据并将其粘贴到 HTML 源中。然后,一旦页面完成,我在其中有一些 javascriptgetData.php来检索该数据,将其格式化为 DataTable 并将其传递给 Google Visualization API 以制作 SVG 图表。

然后我有更多运行的 JS 获取该 SVG 对象,将其转换为 Canvas 对象,从中获取 base64 图像数据,最后使用以下数组发布到 saveTo.php:

{'id' : id, 'data' : imgData}

saveTo.php只需接收该 POST 数据,根据 id 在我的服务器上创建一个文件并将 imgData 粘贴到其中。最终结果是我可以将一个 ID 传递给getData.php并最终得到一个可视化图表的保存图像,我希望根据与该 ID 相关联的数据库中的数据制作该图表。

这一切都是手工工作的。但是我有大约 1,000 个这些 ID,我想拥有它,以便每天早上运行整个过程,以便我可以根据昨天的数据更新图像。


我应该提到我确实尝试使用 3rd 方工具包 HtmlUnit ( http://htmlunit.sourceforge.net/ ) 但只是不断收到这些错误:

com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify WARNING: Obsolete content type encountered: 'text/javascript'.

4

1 回答 1

0

更多的搜索并找到正确的关键字来尝试最终将我带到了 Selenium,这正是我所寻找的。

http://docs.seleniumhq.org/projects/webdriver/

于 2013-04-14T18:30:03.557 回答