Probléme de connexion d'une application android vers une BD mysql
Bonjour tout le monde,
Je suis entréain de développer une application qui se connecte sur un serveur mysql, en utilisant JSON, j'ai commencé par créer mon webservice php et ça marche bien.
Code:
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
|
<?php
// array for JSON response
$response = array();
// check for required fields
if (isset($_POST['num'])){
$numsim = $_POST['num'];
// Connecting to mysql database
$con = mysql_connect("localhost", "root", "") ;
// Selecing database
$db = mysql_select_db("test") ;
// mysql inserting a new row
$result=mysql_query("INSERT INTO backup(num) VALUES('$num')");
if ($result) {
// successfully inserted into database
$response["success"] = 1;
$response["message"] = "successfully created.";
// echoing JSON response
echo json_encode($response);
} else {
// failed to insert row
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";
// echoing JSON response
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
}
?> |
Puis j'ai crée mon application android, quand j'essaie de me connecter sur le webservice, j'écris le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10
|
private static String url = "http://localhost/android_connect/create_new_backup.php";
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("num", num));
// getting JSON Object
JSONObject json = jsonParser.getJSONFromUrl(url, params); |
la fonction getJSONFromUrl
Code:
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
|
public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {
// Making HTTP request
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = null;
httpPost = new HttpPost (url);
Log.d("Create Response", httpPost.toString());
httpPost.setEntity(new UrlEncodedFormEntity(params));
Log.d("Create Response", httpPost.toString());
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
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();
json = sb.toString();
Log.e("JSON", json);
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
try {
JSONArray jsonArray = new JSONArray(json);
for(int i=0;i<jsonArray.length();i++) {
jObj = jsonArray.getJSONObject(i);
Log.i("testing", jObj.getString("tag"));
Log.i("testing", jObj.getString("success"));
Log.i("testing", jObj.getString("error"));
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return JSON String
return jObj;
} |
sachant que j'ai ajouté dans le manifest.xml la permission accés à l'internet
mais au moment ou j'essaie de connecter il m'affiche une erreur
unfortunately, application has stopped
d'aprés le LogCat, l'erreur c au niveau
HttpResponse httpResponse = httpClient.execute(httpPost);
pouvez vous m'aider à résoudre le probléme
j'ai vérifié bien que mon serveur wamp est online
j'ai beaucoup perdu du temps dans ce probléme
merci de m'aider