Ciao a tutti
Sto realizzando una applicazione in j2me che dovrebbe eseguire la login in un sito per fare delle operazioni automatiche.
Premetto che il sito con cui sto facendo delle prove è stato realizzato da me con Drupal.

Il problema è che eseguendo la richiesta della pagina e passando in post i dati della login vengo sempre rimandato alla pagina di login...Nel metodo in cui effettuo la richiesta se ci sno redirect li eseguo.

Ho provato a fare un pò di sniffing e le richieste che invio io sono praticamente le stesse del mio browser (mozilla firefox 2.0.0.12).

La stringa di login è questa

http://microboz.netsons.org/index.ph...er_login_block

Ovviamente i dati dopo ? li mando in post (omettendo avviamente ?)

Penso che il problema possa essere dovuto alla gestione dei cookie, per questo ho creato un oggetto cookieContainer dove immagazzino i cookies che ricevo per poi reinviarli con successive richieste.

Posto un pò di codice:

codice:
    private void connection(String uri, String method) throws IOException{
        // effettuo la connessione alla risorsa specificata
        conn=(HttpConnection)Connector.open(uri);
        conn.setRequestMethod(method);
        conn.setRequestProperty("User-Agent","vSms");
        conn.setRequestProperty("Connection","Close");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
        // imposto eventuali cookie
        if (acceptCookies) {
            String cookiesToAdd = cookies.addCookiesToConnection(conn);
            conn.setRequestProperty("Cookie",cookiesToAdd);
        }
        // invio eventuali dati POST
        if ((method == HttpConnection.POST) && (post.length()>0)){
            //System.out.println("Post-data: " + post);
            os = conn.openOutputStream();
            os.write(post.getBytes());
            os.close();
        }
        // stream di risposta
        is = conn.openInputStream();
        // leggo i cookies
        if (acceptCookies) cookies.readCookies(conn);
    }

    private void performRedirect(String uri) throws IOException {
        String myRequestMethod = method;
        int myRedirects = 0;
        int code = 0;
        while (myRedirects<maxRedirect){
            // richiedo la risorsa
            connection(uri, myRequestMethod);
            // leggo la risposta dal server
            code = conn.getResponseCode();
            // controllo se ci sono eventuali redirect
            if ((code >= HttpConnection.HTTP_MOVED_PERM &&
                    code <= HttpConnection.HTTP_SEE_OTHER) ||
                    (code == HttpConnection.HTTP_TEMP_REDIRECT)){
                //getHtmlToStream();
                // ricavo la nuova url
                uri=conn.getHeaderField("Location");
                post="";
                closeConnection();
                System.out.println("Redirect: " + uri);
                if (++myRedirects>maxRedirect){
                    // superato il numero massimo di redirect
                    throw new IOException("Too many redirects!");
                }
                myRequestMethod = HttpConnection.POST;
                if (code == HttpConnection.HTTP_MOVED_TEMP || code == HttpConnection.HTTP_SEE_OTHER) {
                    myRequestMethod = HttpConnection.GET;
                }
                continue;
            } else
                break;
        }
        //if (myRedirects>0) System.out.println("Eseguiti (" + myRedirects + ") redirects.");
        // ricavo l'html della pagina
        getHtmlToStream();
    }
Ringrazio per l'aiuto.
Complimenti per il forum

P_