IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Cleartext HTTP traffic to00 not permitted


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2020
    Messages : 12
    Par défaut Cleartext HTTP traffic to00 not permitted
    Bonjour à tous,
    je viens solliciter un peu votre coup de main sur un projet Android sur lequel je travaille

    J'essaye de connecter mon application à la base de données via une page de login et/ou d'enregistrement;

    j'ai comme page déjà que je vous donne ci-dessous ;

    - RegisterActivirty ;

    - MainActivity

    - MySingleton

    PB :

    - en exécutant directement mon fichier de script PHP, tout est parfait et les insertions n'ont aucun problème !!
    - voila, une première fois après avoir compiler et tenter de lancer l'application a travers mon émulateur, j'ai reçu un message d'erreur suivant :
    com.android.volley.NoConnectionError : java.io.IOException : Context HTTP Taffic to (mon adresse IP) not permitted
    j'ai fouillé pour essayer de comprendre mon erreur, et je suis tombé sur la solution portant 02 options :
    - enlever le 's' dans mon http ..... Resultat : plus de messages d'erreure, mais mon activité de login ne bouge pas vers la seconde activité

    - dans mon manifest, ajouter la permission <uses-permission android:name="android.permission.INTERNET" /> et android:usesCleartextTraffic="true"> .... Résultat, rien ne se passe, pire le premier message n'apparait même plus jamais !!!

    Alors, je suis plus que perdu, quelqun pourrait-il me donner un coup de main pour comprendre mon pb et me permettre d'évoluer sur mon projet ?

    RegisterActivity.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    package com.ibth.newspacemembres;
     
    import androidx.appcompat.app.AppCompatActivity;
     
    import android.app.ProgressDialog;
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.Button;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
     
    import com.android.volley.AuthFailureError;
    import com.android.volley.DefaultRetryPolicy;
    import com.android.volley.Request;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.StringRequest;
    import com.rengwuxian.materialedittext.MaterialEditText;
     
    import java.util.HashMap;
    import java.util.Map;
     
    public class RegisterActivity extends AppCompatActivity {
        MaterialEditText userName, email, password, mobile;
        RadioGroup radioGroup;
        Button register;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
     
            userName = findViewById(R.id.username);
            email = findViewById(R.id.email);
            password = findViewById(R.id.password);
            mobile = findViewById(R.id.mobile);
            radioGroup = findViewById(R.id.radiogp);
            register = findViewById(R.id.register);
     
            register.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String txtUserName = userName.getText().toString();
                    String txtEmail = email.getText().toString();
                    String txtPassword = password.getText().toString();
                    String txtMobile = mobile.getText().toString();
     
                    if (TextUtils.isEmpty(txtUserName) || TextUtils.isEmpty(txtEmail) ||
                            TextUtils.isEmpty(txtPassword) || TextUtils.isEmpty(txtMobile) ){
                        Toast.makeText(RegisterActivity.this, "All fields are requires", Toast.LENGTH_SHORT).show();
                    }
     
                    else{
                        int genderId = radioGroup.getCheckedRadioButtonId();
                        RadioButton selected_Gender = radioGroup.findViewById(genderId);
                        if (selected_Gender == null){
                            Toast.makeText(RegisterActivity.this, "Selected Gender Please", Toast.LENGTH_SHORT).show();
                        }
     
                        else {
                            String selectGender = selected_Gender.getText().toString();
                            registerNewAccount(txtUserName, txtEmail, txtPassword, txtMobile, selectGender);
     
     
                        }
                    }
     
     
     
                }
            });
        }
     
        private void registerNewAccount(String username, String email, String password, String mobile, String gender){
            ProgressDialog progressDialog = new ProgressDialog(RegisterActivity.this);
            progressDialog.setCancelable(false);
            progressDialog.setIndeterminate(false);
            progressDialog.setTitle("Resgistering new Account");
            String uRl = "http://localhost/loginregister/registration3.php";
            StringRequest request = new StringRequest(Request.Method.POST, uRl, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    if (response.equals("successfully registered")){
                        progressDialog.dismiss();
                        Toast.makeText(RegisterActivity.this, response, Toast.LENGTH_SHORT).show();
                        startActivity(new Intent(RegisterActivity.this, MainActivity.class));
                        finish();
                    }
                    else {
                        progressDialog.dismiss();
                        Toast.makeText(RegisterActivity.this, response, Toast.LENGTH_SHORT).show();
     
                    }
     
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    progressDialog.dismiss();
                    Toast.makeText(RegisterActivity.this, error.toString(), Toast.LENGTH_SHORT).show();
     
                }
     
            }){
                protected Map<String, String> getParams() throws AuthFailureError{
                    HashMap<String, String> param = new HashMap<>();
                    param.put("username", username);
                    param.put("email", email);
                    param.put("psw", password);
                    param.put("mobile", mobile);
                    param.put("gender", gender);
                    return param;
                }
     
            };
            request.setRetryPolicy(new DefaultRetryPolicy(30000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT ));
            MySingleton.getmInstance(RegisterActivity.this).addToRequestQueue(request);
     
     
        }
    }
    MainActivity.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    package com.ibth.newspacemembres;
     
    import androidx.appcompat.app.AppCompatActivity;
     
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.CheckBox;
     
    import com.rengwuxian.materialedittext.MaterialEditText;
     
    public class MainActivity extends AppCompatActivity {
        MaterialEditText email, password;
        Button login, register;
        CheckBox loginState;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            login = findViewById(R.id.login);
            loginState = findViewById(R.id.checkbox);
            email = findViewById(R.id.email);
            password = findViewById(R.id.password);
            register = findViewById(R.id.register);
     
            register.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    startActivity(new Intent(MainActivity.this, RegisterActivity.class));
                    finish();
                }
            });
     
     
        }
    }
    MySingleton.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    package com.ibth.newspacemembres;
     
    import android.content.Context;
     
    import com.android.volley.Cache;
    import com.android.volley.Network;
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.toolbox.BasicNetwork;
    import com.android.volley.toolbox.DiskBasedCache;
    import com.android.volley.toolbox.HurlStack;
    import com.android.volley.toolbox.Volley;
     
    public class MySingleton {
     
        private static MySingleton mInstance;
        private RequestQueue mRequestQueue;
        private Context mctx;
     
        public MySingleton(Context mctx) {
            this.mctx = mctx;
            mRequestQueue = getmRequestQueue();
        }
     
        public RequestQueue getmRequestQueue(){
            if (mRequestQueue == null){
                Cache cache = new DiskBasedCache(mctx.getCacheDir(), 1024*1024);
                Network network = new BasicNetwork(new HurlStack());
                mRequestQueue = new RequestQueue(cache, network);
                mRequestQueue = Volley.newRequestQueue(mctx.getApplicationContext());
            }
     
            return  mRequestQueue;
        }
     
        public  static synchronized  MySingleton getmInstance(Context context){
            if (mInstance == null){
                mInstance = new MySingleton(context);
            }
            return mInstance;
     
        }
     
        public <T> void addToRequestQueue(Request<T> request){
            mRequestQueue.add(request);
        }
    }
    AndroidManifest.xml
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.ibth.newspacemembres">
     
        <uses-permission android:name="android.permission.INTERNET" />
     
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/Theme.NewSpaceMembres"
            android:usesCleartextTraffic="true">
     
            <activity android:name=".AppStartActivity"></activity>
            <activity android:name=".RegisterActivity" />
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
     
    </manifest>

    voila, désoler pour les eventuelles fautes dans mon message .... je suis au bout de 03 jours sans sommeil sur ce probleme !!!

    Merci à tous

  2. #2
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 235
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 235
    Par défaut
    Citation Envoyé par pascal2020 Voir le message
    - en exécutant directement mon fichier de script PHP, tout est parfait et les insertions n'ont aucun problème !!
    - voila, une première fois après avoir compiler et tenter de lancer l'application a travers mon émulateur, j'ai reçu un message d'erreur suivant :

    j'ai fouillé pour essayer de comprendre mon erreur, et je suis tombé sur la solution portant 02 options :
    - enlever le 's' dans mon http ..... Resultat : plus de messages d'erreure, mais mon activité de login ne bouge pas vers la seconde activité

    - dans mon manifest, ajouter la permission <uses-permission android:name="android.permission.INTERNET" /> et android:usesCleartextTraffic="true"> .... Résultat, rien ne se passe, pire le premier message n'apparait même plus jamais !!!
    Salut Pascal,

    Je ne sais pas si tu as trouvé entre temps.
    Tu dos mettre le S si tu as mis en configuré ton serveur Web (nginx, apache, ... ) en SSL ou non.
    Lorsque tu lances tes url pour tester ton code PHP sur ton serveur Web, as tu utilisé http ou https ?

    Pour ma part, il me semble que j'avais un peu le même souci que toi. Pour le moment, pour mes tests, j'ai configuré mon serveur Nginx sur le port 80. Par exemple pour synchro sur mon raspberry, je lance sur mon réseau local :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://192.168.1.47/functions.php?operation=synchro&sens=down
    j'ai eu le même message d'erreur que toi et j'ai en effet rajouté le bout de code autorisant les connexions en clair et cela a résolu.

    EDIT : tu devrais lancer ton appli en mode debug et voir ligne par ligne, ou tu passes et ainsi vérifié si tu passes par onResponse

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2010, 18h58
  2. Erreur HTTP 404.13 - Not Found
    Par Tuizi dans le forum IIS
    Réponses: 0
    Dernier message: 08/12/2008, 20h10
  3. Réponses: 1
    Dernier message: 09/08/2008, 14h58
  4. Réponses: 1
    Dernier message: 03/07/2008, 23h19
  5. chmod Operation not permited
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 14/08/2007, 22h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo