Visualizzazione risultati 1 fino 4 di 4

Discussione: Problemi con richieste HTTP da un'app android

  1. #1
    pepper4storytelling non è connesso Utente AlterBlog
    Data registrazione
    06-05-2021
    Messaggi
    3

    Predefinito Problemi con richieste HTTP da un'app android

    Buongiorno, ho avviato un sito su Altervista con dei miei colleghi di università nel 2021 in cui vengono pubblicate delle storie da far raccontare al robot Pepper attraverso un'app che si collega al database del sito sempre presente su Altervista, recentemente ho ri-preso il progetto in quanto devo apportare delle modifiche, ho notato però che le richieste HTTP sembrano essere bloccate quando uso l'emulatore del robot, l'emulatore in questione utilizza una versione più datata di Android (Emulatore Android v. 29.0.11) per mantenere la compatibilità con il robot Pepper, confermo che il sistema funzionava correttamente e che per appunto solo ultimamente sto riscontrando questi problemi, temo possa esserci un problema di sicurezza legato al fatto che la versione Android del robot è vecchia, ma non ho sufficienti informazioni per confermare questa opzione.
    Vi riporto di seguito i dati:
    File PHP per recuperare la lista delle storie
    Codice PHP:
    <?php

    require "connection.php";

    $query = $conn->prepare("SELECT * FROM Storie");
    $query->execute();
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
    $json = json_encode($resultArray);
    echo
    json_encode($result);

    $conn=null;

    ?>
    Classe su Android Studio
    Codice:
    package esame.pepper;
    
    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.os.AsyncTask;
    import android.util.Log;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.nio.charset.StandardCharsets;
    import java.util.ArrayList;
    
    public class GetTitles extends AsyncTask<Void, Void, String> {
        Context context;
        protected static ArrayList<String> titleList = new ArrayList<>();
    
        public GetTitles(Context context) {
            this.context = context;
        }
    
        @Override
        protected String doInBackground(Void... voids) {
            try {
                URL url = new URL ("https://pepper4storytelling.altervista.org/Cartella%20temporanea%20GETTERS/story_list.php");
                //URL url = new URL ("https://jsonplaceholder.typicode.com/posts");
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("GET");
                Log.d("provahttp", "velore query : "+ url);
                InputStream inputStream = httpURLConnection.getInputStream();
                Log.d("provahttp", "velore query : "+ inputStream);
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.ISO_8859_1));
                StringBuilder sb = new StringBuilder();
                String line = "";
                while ((line = bufferedReader.readLine()) != null) {
                    sb.append(line).append('\n');
                    Log.d("provahttp", " Testo: "+ sb.toString());
                }
                JSONArray jsonArray = new JSONArray(sb.toString());
                for (int i=0; i < jsonArray.length(); i++ ) {
                    JSONObject ob = jsonArray.getJSONObject(i);
                    titleList.add(i, ob.get("Titolo").toString());
                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return sb.toString();
            } catch (MalformedURLException e) {
                e.printStackTrace();
                Log.d("provahttp", "Errore di MalformedURLException");
            } catch (IOException e) {
                e.printStackTrace();
                Log.d("provahttp", "Errore di IOException");
            } catch (JSONException e) {
                e.printStackTrace();
                Log.d("provahttp", "Errore di JSONException");
            }
            return null;
        }
    
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
    
        @Override
        protected void onPostExecute(String s) {
        }
    
        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }
    
    }
    Se uso questo URL mi da IOException nel try-catch, però se provo ad aprire il file nel brower trovo effettivamente l'oggetto JSON con i dati ottenuti dalla query.
    Codice:
    https://pepper4storytelling.altervista.org/Cartella%20temporanea%20GETTERS/story_list.php

    Se invece uso quest'altro riesco effettivamente a caricare i dati presenti nel json sull'applicazione
    Codice:
    https://jsonplaceholder.typicode.com/posts
    Sapreste consigliarmi cosa fare per risolvere questa situazione?
    Ultima modifica di pepper4storytelling : 13-05-2024 alle ore 16.05.17

  2. #2
    pepper4storytelling non è connesso Utente AlterBlog
    Data registrazione
    06-05-2021
    Messaggi
    3

    Predefinito

    EDIT da altri studenti che hanno lavorato con il mio progetto mi è stato confermato che devo disabilitare l'https per consentire all'app di pepper di comunicare correttamente con il sito, solo che loro hanno creato un altro host e clonato il progetto per risolvere, io avrei urgentemente bisogno di disattivare temporaneamente l'HTTPS sul mio sito, dato che dovrebbe servire alla professoressa a breve, vi prego in un riscontro. Il sito è lo stesso dell'utente con cui sto comunicando e uso il gestore file.

  3. #3
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,276

    Predefinito

    Salve,
    HTTPS non può essere disattivato, ma può modificare nel file .htaccess il redirect verso HTTPS ivertendolo, in questo modo:
    Codice:
    RewriteCond %{HTTP:X-Forwarded-Proto} !http
    RewriteCond %{HTTPS} off
    RewriteRule .* http://pepper4storytelling.altervista.org%{REQUEST_URI} [L,R=301]
    Cordiali saluti.

  4. #4
    pepper4storytelling non è connesso Utente AlterBlog
    Data registrazione
    06-05-2021
    Messaggi
    3

    Predefinito

    Buonasera, vi ringrazio per la celere risposta.

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •