Salve a tutti!
Devo fare un web browser in java che permetta all'utente di andare in rete passando attraverso uno (o forse più) proxy. Allora ho cercato in internet trovando web browser già pronti e ho aggiunto le seguenti righe per passare attraverso un proxy:
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "123.123.123.123" );
System.getProperties().put( "proxyPort", "8080" );
Ho verificato su un sito che l'indirizzo fosse davvero quello del proxy e non quello del pc ed infatti così è.
Il problema è che se vado in siti contenenti javascript o con flash, il browser avvisa che il sito necessita di javascript o flash e non mi permette di accedere al sito vero e proprio.
La domanda quindi è: come faccio a visualizzare questi tipi d contenuti?
Vi posto il codice del browser, tanto è breve:
codice:
import javax.swing.text.*;
import javax.swing.*;
import java.io.*;
import java.awt.*;
public class SimpleWebBrowser {
public static void main(String[] args) {
//Enable the properties used for proxy support
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "123.123.123.123" );
System.getProperties().put( "proxyPort", "8080" );
// get the first URL
String initialPage = "http://www.repubblica.it/";
if (args.length > 0) initialPage = args[0];
// set up the editor pane
JEditorPane jep = new JEditorPane();
jep.setEditable(false);
jep.addHyperlinkListener(new LinkFollower(jep));
try {
jep.setPage(initialPage);
}
catch (IOException e) {
System.err.println("Usage: java SimpleWebBrowser url");
System.err.println(e);
System.exit(-1);
}
// set up the window
JScrollPane scrollPane = new JScrollPane(jep);
JFrame f = new JFrame("Simple Web Browser");
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.getContentPane().add(scrollPane);
f.setSize(512, 342);
f.show();
}
}
La classe LinkFollower:
codice:
import javax.swing.*;
import javax.swing.event.*;
public class LinkFollower implements HyperlinkListener {
private JEditorPane pane;
public LinkFollower(JEditorPane pane) {
this.pane = pane;
}
public void hyperlinkUpdate(HyperlinkEvent evt) {
if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {
pane.setPage(evt.getURL());
}
catch (Exception e) {
}
}
}
}