Bonjour.
J'essaye de faire une connexion sur un serveur externe, mais il y a quelques points que je ne comprends pas.
J'ai trouvé un code sur internet que j'ai adapté à mon application. Il me permet de me connecter en localhost avec mon IP (J'utilise WAMP) et d'accéder à une base de donnée. Mon code fonctionne, et j'arrive bien à lire des info de la BDD.
Maintenant, je souhaite me connecter à une BDD dans un serveur externe (celui de mon entreprise). Les identifiants de connexions à la BDD sont placés dans un fichier PHP lui même placé dans le serveur. Or, la connexion au serveur nécessite des identifiants. Je ne vois pas comment on peut aller lire dans ce fichier PHP sachant que dans le code JAVA, en tente d'y accéder sans identifiants.
J'espère que vous aurez compris mes explications mais cela reste encore flou pour moi.
Class ville.java
fichier ville.php (placé dans le serveur)
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 public class ville extends Activity { TextView txt; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Ajout du StrictMode pour empecher les proclème lors de l'accès à la BDD StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); LinearLayout rootLayout = new LinearLayout(getApplicationContext()); txt = new TextView(getApplicationContext()); rootLayout.addView(txt); setContentView(rootLayout); // Définir le texte et appeler la fonction de connexion. txt.setText("Connexion..."); // Appeler la méthode pour récupérer les données JSON txt.setText(getServerData(strURL)); } // Mettre l'adresse du script PHPS // Attention localhost ou 127.0.0.1 ne fonctionnent pas. Mettre l'adresse IP local. public static final String strURL = "http://192.168.XX.XX/test/android/sql/ville.php"; //Mon IP personelle private String getServerData(String returnString) { InputStream is = null; String result = ""; // Envoyer la requête au script PHP. // Script PHP : $sql=mysql_query("select * from tblVille where Nom_ville like '".$_REQUEST['ville']."%'"); // $_REQUEST['ville'] sera remplacé par L dans notre exemple. // Ce qui veut dire que la requête enverra les villes commençant par la lettre L ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("ville","L")); // Envoie de la commande http try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(strURL); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); }catch(Exception e){ Log.e("log_tag", "Error in http connection " + e.toString()); } // Convertion de la requête en string try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result=sb.toString(); }catch(Exception e){ Log.e("log_tag", "Error converting result " + e.toString()); } // Parse les données JSON try{ JSONArray jArray = new JSONArray(result); for(int i=0;i<jArray.length();i++){ JSONObject json_data = jArray.getJSONObject(i); // Affichage ID_ville et Nom_ville dans le LogCat Log.i("log_tag","ID_ville: "+json_data.getInt("ID_ville")+ ", Nom_ville: "+json_data.getString("Nom_ville") ); // Résultats de la requête returnString += "\n\t" + jArray.getJSONObject(i); } }catch(JSONException e){ Log.e("log_tag", "Error parsing data " + e.toString()); } return returnString; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php mysql_connect("localhost","root",""); mysql_select_db("test"); $sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like '".$_REQUEST['ville']."%'"); while($row=mysql_fetch_assoc($sql)) $output[]=$row; print(json_encode($output)); mysql_close(); ?>
Partager