Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361

    [J2ME] Metodi GET e POST non funzionano

    Salve, sto realizzando un programma che deve appoggiarsi a una pagina php semplicemente inviando dati tramite GET o POST.

    nel primo caso ho visto che basta aprire la connessione con
    codice:
    conn = (HttpConnection)Connector.open(URL);
    e impostare il metodo con
    codice:
    conn.setRequestMethod(HttpConnection.GET);
    ovviamente l'url è formata in questo modo ..pagina.php?campo=valore&campo=valore

    come mai le informazioni non arrivano a destinazione?

    per quanto riguarda il post ho aggiunto un OutputStream (con array di byte) in questo modo
    codice:
    byte data[] = ("numero=" + nums).getBytes();
                oStream.write(data);
                data = ("&testo=" + tes).getBytes();
                oStream.write(data);
                oStream.close();
    preceduto da

    codice:
                oStream = conn.openOutputStream();
                conn.setRequestMethod(HttpConnection.POST);
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    Dove sbaglio? sapete aiutarmi? grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    dopo alcune ricerche ho trovato una soluzione (almeno per il metodo GET): anzichè usare HttpConnection ho utilizzato uno StreamConnection, e adesso i dati arrivano senza problemi alla pagina PHP.

    Non ho ancora provato con il metodo POST, e sinceramente non so se funzionerà, comunque vorrei chiedere ai più esperti di aiutarmi a capire perchè tutti gli esempi che trovo online utilizzano l'HttpConnection e perchè a me non funziona..

  3. #3
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361

    J2ME -PHP e JQuery non eseguono comando

    Salve, non riesco a capire questa cosa: ho realizzato una pagina php che riceve due valori tramite GET, carica un form nel tag <HEAD> dove vengono inseriti questi 2 valori e poi al momento del <BODY onload> faccio inviare in automatico il form tramite comando Jquery (tipo $('#nomemod').submit() )

    se mi collego a questa pagina dal computer (es. pagina.php?a=valore&b=valore) funziona perfettamente, infatti al momento del load del body lo script jquery parte in automatico.

    Questo però non avviene tramite applicazione J2ME. I dati arrivano a destinazione (ho fatto la prova inserendoli in un database una volta raggiunta la pagina), ma il resto dello script non viene eseguito e il form non viene quindi inviato.

    Secondo voi da cosa dipende? devo leggere totalmente la pagina tramite cellulare? non basta inviare i valori tramite GET? o ci sono altre soluzioni?

    grazie!

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Qual è il legame tra J2ME e l'applicazione di cui parli (che invece viene descritta come una pagina Web PHP con JavaScript, che non è Java).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Scusa, in effeti ho esposto il problema in modo frammentario.. allora io ho creato un'applicazione per cellulari che si collega alla pagina php tramite metodo GET in questo modo:

    codice:
            String nums = numero.getString();
            String tes = testo.getString();
            OutputStream os = null;
            StreamConnection sc = null;
            URL = "http://sitoweb.com/pagina.php?numero=" + nums + "&testo=" + tes;
            testo.insert(URL, 1);
            try {
               sc = (StreamConnection) Connector.open(URL);
               os = sc.openDataOutputStream();
               os.flush();
               os.close();
            .....
    prima l'avevo realizzata con HttpConnection, ma pur settando setRequestMethod(HttpConnection.GET) i dati non arrivavano a destinazione, mentre in questo modo vengono letti senza problemi dalla pagina php

    Il problema è che la pagina, una volta ricevuti i dati, dovrebbe "submittare" un form caricato nell'<HEAD> in modo automatico grazie all'evento onload del BODY. Se accedo alla pagina php dal computer questo avviene, mentre se mi collego dall'applicazione per cellulare i dati passati col GET arrivano, ma non viene eseguito l'invio del form.

    Come mai? devo far caricare tutti i byte della pagina dal cellulare? oppure c'è un'altra scappatoia? spero di esser stato più chiaro, grazie.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da LuckySevenRoX
    Il problema è che la pagina, una volta ricevuti i dati, dovrebbe "submittare" un form caricato nell'<HEAD> in modo automatico grazie all'evento onload del BODY. Se accedo alla pagina php dal computer questo avviene, mentre se mi collego dall'applicazione per cellulare i dati passati col GET arrivano, ma non viene eseguito l'invio del form.
    Il codice JavaScript contenuto nella pagina viene eseguito dal browser, e solo all'interno di quel contesto ha un senso; se accedi alla pagina con una classe che ne scarica il contenuto, avrai solamente tale contenuto, ma le funzioni che si trovano all'interno non verranno eseguite.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    allora potresti spiegarmi perchè non riesco a far funzionare il POST da HttpConnection? l'applicazione si connette alla pagina ma i valori non arrivano.. come mai? ho fatto un sacco di ricerche e tutte mi danno lo stesso codice (quello che ho scritto nel primo post della pagina).. la connessione con la pagina php avviene ma i dati non arrivano.. come mai?

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Posta il codice che hai usato con la UrlConnection per la comunicazione in POST, perchè credo che tu non stia agendo nel modo corretto.

    Se hai una comunicazione tramite POST, la URL sarà solo la pagina di destinazione e i vari parametri vanno passati tramite l'OutputStream associato.

    Un esempio:

    codice:
          URL url = new URL( "http://sitoweb.com/pagina.php" );
          URLConnection con = url.openConnection();
          ((HttpURLConnection)con).setRequestMethod("POST");
          con.setDoOutput(true);     // Dobbiamo inviare dei dati
          con.setDoInput(true);      // true se ci si aspetta di leggere una risposta dal server
          con.setUseCaches(false);   // Non voglio il caching
          con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
          PrintWriter output = new PrintWriter(new OutputStreamWriter(con.getOutputStream()));
          output.println("numero=" + URLEncoder.encode(nums, "ISO-8859-1"));
          output.println("testo=" + URLEncoder.encode(tes, "ISO-8859-1"));
          output.flush();
          output.close();
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Grazie per la risposta, in questo momento non sono sul mio PC di lavoro quindi più tardi proverò il codice e ti dirò se funziona.. posso dirti che per ora ho notato 2 differenze: io utilizzavo un DataOutputStream anzichè un OutputStreamWriter/PrintWriter.. e leggendo la documentazione java il secondo sembra sicuramente più adatto al mio caso.
    Inoltre non utilizzavo URLEncoder, ma credo, dall'alto della mia INesperienza, che quello serva soprattutto come garanzia che le informazioni arrivino in un formato "leggibile" dalla pagina per evitare perdite/alterazioni di dati (dico bene?)

    comunque ti ringrazio ancora, entro stasera vi farò sapere se l'applicazione funziona o no a presto

    EDIT: un'altra domanda per "crescere".. usi il metodo println() anzichè write() perchè in questo modo la stringa mantiene la codifica specificata (cosa che non avverrebbe con il write)? spero di non essermi sbagliato

  10. #10
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Allora scrivendo il tuo codice all'interno del mio programma ho capito che alcune librerie che sfrutti non sono utilizzabili dalle applicazioni per cellulari (o comunque non sono importate in automatico).

    Allora smanettando un pò sono arrivato a questa conclusione:
    codice:
            conn = (HttpConnection)Connector.open(URL);
            conn.setRequestMethod(HttpConnection.POST);
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            oStream = conn.openOutputStream();
            byte postm[] = ("numero="+nums).getBytes();
            oStream.write(postm);
            postm = ("&testo="+tes).getBytes();
            oStream.write(postm);
            oStream.flush();
            int code = conn.getResponseCode();
            testo.insert(Integer.toString(code) , 1);
    Praticamente passavo i dati byte per byte anzichè tutti insieme. Adesso funziona
    Oltre alle domande del post precedente comunque (se mi darai 1 risposta sarò estremamente contento, almeno posso aumentare le mie conoscenze ) ne aggiungo altre 2:
    la Java.net può essere importata in applicazioni per cellulari? ci sono accorgimenti particolari da prendere?

    questo codice ti sembra accettabile o va modificato in qualche modo? grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.