CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: bluemask con ben 8 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 27 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

HttpURLConnection per leggere pagina protetta da password

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    May 2020
    Messaggi
    6

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    HttpURLConnection per leggere pagina protetta da password

    Uso HttpURLConnection per leggere il contenuto di una pagina web. Lo lancio in AsyncTask, doInBackground e va tutto bene fino a quando uso il motodo GET, e anche quando uso POST.

    Il problema è che alcune delle pagine che voglio vengano visitate sono protette da password, ma senza autenticazione. Ho individuato l'action del form che chiede la password e il nome del campo che invia, e posso far inserire la password dall'utente in un campo testo, anche se sarebbe preferibile che l'utente inserisca la password direttamente nella pagina che mostrerò in un WebView e, alle richieste successive, HttpURLConnection ricordasse il cookie della password e mostrasse direttamente la pagina.

    Quando faccio urlConnection.getResponseCode(); viene lanciate l'eccezione IOException: unexpected end of stream on <censurata>

    x
     
    1
    protected Void doInBackground(Void... params){
    2
        HttpURLConnection urlConnection = null;
    3
    4
        try{
    5
            JsonObject postData = new JsonObject();
    6
            //postData.addProperty("name", "morpheus");
    7
            postData.addProperty("post_password", "p");
    8
    9
            URL url = new URL(<censurato>);
    10
            urlConnection = (HttpURLConnection) url.openConnection();
    11
            urlConnection.setRequestProperty("Content-Type", "application/json");
    12
            urlConnection.setRequestMethod("POST");
    13
            urlConnection.setDoOutput(true);
    14
            urlConnection.setDoInput(true);
    15
            urlConnection.setChunkedStreamingMode(0);
    16
    17
            OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
    18
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
    19
            writer.write(postData.toString());
    20
            writer.flush();
    21
    22
            int code = urlConnection.getResponseCode();
    23
            if (code !=  201)throw new IOException("Invalid response from server: " + code);
    24
    25
            BufferedReader rd = new BufferedReader(new InputStreamReader(
    26
                    urlConnection.getInputStream()));
    27
            String line;
    28
            while ((line = rd.readLine()) != null) Log.i("data", line);
    29
        }
    30
        catch (Exception e){
    31
            e.printStackTrace();
    32
        }
    33
        finally{
    34
            if (urlConnection != null)urlConnection.disconnect();
    35
        }
    36
    37
        return null;
    38
    }


    Vorrei che fosse compatibile da Android 4.4.

  2.  
  3. #2
    Baby Droid L'avatar di gianpassa


    Registrato dal
    Nov 2012
    Messaggi
    17,791
    Smartphone
    Yamaha G2

    Ringraziamenti
    4,812
    Ringraziato 8,100 volte in 6,213 Posts
    Predefinito

    Discussione approvata
    (Era rimasta in attesa di approvazione)
    “L’uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi”. A. Einstein

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy