0

我知道在 Python 之类的脚本语言中这是可能的,但我知道 Java 小程序无法访问除自己的服务器之外的其他服务器。

我不知道/认为我可以签署这个小程序。有没有办法使用 PHP 来完成我想要完成的事情?

我也知道这段代码会去 google.com

import java.applet.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;

public class tesURL extends Applet implements ActionListener{

  public void init(){
  String link_Text = "google";
  Button b = new Button(link_Text);
  b.addActionListener(this);
  add(b);
  }

  public void actionPerformed(ActionEvent ae){
  //get the button label
  Button source = (Button)ae.getSource();

  String link = "http://www."+source.getLabel()+".com";
  try
  {
  AppletContext a = getAppletContext();
  URL u = new URL(link);
//  a.showDocument(u,"_blank");
//  _blank to open page in new window  
  a.showDocument(u,"_self");
  }
  catch (MalformedURLException e){
  System.out.println(e.getMessage());
  }
  }
}

这是假设 source.getLabel() 是“谷歌”

但是我将如何获得该页面的源 html?

源 html 是动态的,每隔几秒或几毫秒更新一次。但是,html 也更新了,所以我仍然可以直接从 html 中读取动态内容。我已经在 vb.net 中这样做了,但现在我需要将它移植到 Java,但我不知道如何访问页面的 html 源;这就是我问的原因。

4

1 回答 1

1

AppletContext.showDocument在浏览器中打开一个页面,很像 HTML 中的超链接或 JavaScript 中的类似调用。在同源策略下,如果该页面来自不同的站点,您将无权访问该页面,即使该页面位于 iframe 中。

如果您要直接阅读其中的内容,某些站点可能具有crossdomain.xml允许访问的策略文件java.net.URL。但是,www.google.com 似乎使用了一种受限制的形式,我认为 Java 插件目前不支持这种形式。

有人可能会建议对您的小程序进行签名,这会关闭 Java 的“沙盒”安全功能。然后,您需要说服您的用户相信您发布安全签名代码的能力。

于 2013-02-03T22:00:27.973 回答