Ciao a tutti, ho un problema: sto sviluppando un applet e ho bisogno che si connetta a un determinato URL per mandargli dei dati POST e aspettare un'eventuale risposta del server... Da JFrame funziona tutto correttamente mentre da applet no... non carica quello che dovrebbe per cui deduco che la connessione non vada a buon fine...

Il codice che uso:

codice:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Vector;

/**
 * Classe per la gestione dell'invio di parametri post a una pagina
 * @author Alessandro De Roma
 */
public class SiteFX {

    private String postParameters = "";
    private String webPage;
    
    /**
     * Aggiunge un valore da inviare tramite post
     * @param name il nome della variabile da inviare
     * @param value il valore della variabile, se non deve avere valore indicare null 
     */
    public void addPostValue(String name, String value) {
        if (value == null) {
            try {
                postParameters += "&" + URLEncoder.encode(name, "UTF-8");
            } catch (Exception ex) {
            }
        } else {
            try {
                postParameters += "&" + URLEncoder.encode(name, "UTF-8") + "=" + URLEncoder.encode(value, "UTF-8");
            } catch (Exception ex) {
            }
        }
    }

    /**
     * Invia dati post senza stare in ascolto per dei dati di ritorno
     * @return true se l'invio va a buon fine, altrimenti false
     */
    public boolean sendPost() {
        try {
            if(webPage==null|| webPage.equals("")) throw new Exception("Empty url");
            addPostValue("im",null);
            URL url = new URL(webPage);
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(postParameters);
            wr.flush();
        } catch (Exception e) {
            return false;
        }
        postParameters="";
        return true;
    }
    
    /**
     * Invia dati post restando in ascolto per dei dati di ritorno
     * @return null se non riceve dati, altrimenti una stringa contenente i dati
     */
    public String sendPostWithReturnValue() {
        String returnValue="";
        try {
            if(webPage==null|| webPage.equals("")) throw new Exception("Empty url");
            addPostValue("im","settato");
            URL url = new URL(webPage);
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(postParameters);
            wr.flush();
            BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = rd.readLine()) != null) {
                returnValue+=line+"\n";
            }
            wr.close();
            rd.close();
        } catch (Exception e) {
            return null;
        }
        System.err.println(returnValue);
        postParameters="";
        return returnValue;
    }
    /*
    Vector<String>usedSentences = new Vector<String>();
    public boolean alreadyUsed(String sentence){
        for (int i = 0; i < usedSentences.size(); i++) {
            if(sentence.equals(usedSentences.elementAt(i))) return true;
        }
        return false;
    }*/
    
    /**
     * Serve a settare la pagina a cui inviare i dati post
     * @param webPageToPointAt la pagina a cui inviare dati post
     */
    public void setWebPageToPointAt(String webPageToPointAt){
        webPage = webPageToPointAt;
    }
    
    /**
     * Dice al server di cominciare una sessione
     * @return l'id di sessione
     */
    public String startSession(){
        addPostValue("startsession","set");
        return sendPostWithReturnValue();
    }
    
    /**
     * Termina la sessione
     */
    public void endSession(){
        addPostValue("endsession","set");
        sendPost();
    }
}
Come detto, tutto questo funziona a meno che io non usi una Applet... sapete dirmi come posso risolvere??

applet.policy:
codice:
grant {
    permission java.security.AllPermission;
};