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:
Come detto, tutto questo funziona a meno che io non usi una Applet... sapete dirmi come posso risolvere??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(); } }
applet.policy:
codice:grant { permission java.security.AllPermission; };

Rispondi quotando