J’ai un serveur Apache installé sur mon PC où je héberge un fichier PHP.
Ensuite, j’ai essayé de me connecter à ce fichier en utilisant eclipse, mais cela me donne toujours une erreur ci-dessous
connection to http://10.0.2.2:8080 refused.
J’ai essayé de changer l’adresse pour les suivantes, mais j’ai eu une erreur similaire tout le temps.
http://10.0.2.2 http://127.0.0.1 http://localhost
Est-ce que quelqu’un peut m’aider s’il vous plait.
EDITED: Juste pour information, je peux accéder au serveur distant (par exemple, www.mydomain.com) sans aucun problème.
DOSSIER DE CLASSE:
HttpClient httpclient = new DefaultHttpClient(); Log.d("test","t0"); HttpPost httppost = new HttpPost("http://10.0.2.2:8080/mylibman/data.php"); Log.d("test","t1"); HttpResponse response = httpclient.execute(httppost); // error here Log.d("test","t2");
Manifeste Android:
Erreur LogCat:
11-16 02:02:20.803: E/log_tag(1427): Error in http connection org.apache.http.conn.HttpHostConnectException: Connection to http://10.0.2.2:8080 refused 11-16 02:02:20.803: E/log_tag(1427): Error converting result java.lang.NullPointerException: lock == null 11-16 02:02:20.803: E/log_tag(1427): Error parsing data org.json.JSONException: End of input at character 0 of
bien aller à Apache httpd.conf (situé dans le dossier Apache): et rechercher
Order Deny,Allow Deny from all Allow from 127.0.0.1
et vérifiez si la deuxième ligne est Deny, si c’est le cas, changez la en:
Allow from all
puis redémarrez le serveur Appache et dites-moi le code de retour.
modifier
essayez-le dans votre appareil réel:
allez dans CMD et tapez ipconfig
sous IPv4, prenez l’adresse IP et changez l’adresse IP:
http://192.168.0.106:8080/mylibman/data.php // similar to this.
Désactivez le pare-feu et toute application antivirus sur votre PC
et s’il vous plaît donnez-moi les commentaires.
Mike m’a beaucoup aidé sur cette question. Alors voici mes étapes pour éviter cette connexion refusée .
1) Ajouter si pour tester le SDK Android. Il semble que dans les nouvelles versions, vous devez explicitement permettre que la connexion soit ouverte dans un thread différent:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (android.os.Build.VERSION.SDK_INT > 9) { SsortingctMode.ThreadPolicy policy = new SsortingctMode.ThreadPolicy.Builder().permitAll().build(); SsortingctMode.setThreadPolicy(policy); System.out.println("*** My thread is now configured to allow connection"); }
…
2) Ajoutez une exception pour votre port:
dans votre cas, autoriser la connexion entrante pour le port 8080
3) tester votre connexion en parcourant l’url souhaitée localement
utilisez votre navigateur et essayez de visiter http://10.0.2.2:8080
localement
4) Ajouter dans votre fichier manifeste une autorisation pour internet:
J’utilise Wamp, et son apache écoute servername localhost et le port 8080 (autoriser de tout dans httpd.conf).
Mon adresse IP locale est quelque chose de similaire à 192.168.0.XXX/folder/my-page-here
Vous pouvez utiliser votre adresse IP réelle pour atteindre votre serveur virtuel. Jetez un oeil à ma réponse ici . J’espère que ça aide.
Si votre version du SDK est inférieure à 9, ajoutez le code ci-dessus pour la version du SDK, certaines modifications apscopes à la mise à jour Apache httpd.conf en tant que ligne refusant tous..Remplacez cette phrase. 10.0.2.2:8080
port et ligne d’autorisation dans le fichier AndroidManifest d’Android
Je résous ce problème en écrivant mon adresse IP depuis cmd -> ipconfig
dans l’URL:
HttpPost httppost = new HttpPost( "http://192.168.xx/mylibman/data.php" );