Accès à une base de données MySQL
Bonsoir,j'ai essayé d'envoyer les données vers la base de donné MySQL
l'application crache lors de l'insertion à la base.
Comment résoudre l'erreur "java.net.SocketException: The operation timed out".
j'ai poser ma question dans plusieurs forum mais pas de solution .
svp je veux résoudre ce problème .
merci d'avance
JSON Parser Class
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 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
| package tn.pack.ordre.library;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;
public class JSONParser {
static BufferedReader in = null;
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
/** The time it takes for our client to timeout */
public static final int HTTP_TIMEOUT = 30 * 1000; // milliseconds
/** Single instance of our HttpClient */
private static HttpClient mHttpClient;
// constructor
public JSONParser() {
}
/**
* Get our single instance of our HttpClient object.
*
* @return an HttpClient object with connection parameters set
*/
private static HttpClient getHttpClient() {
if (mHttpClient == null) {
mHttpClient = new DefaultHttpClient();
final HttpParams params = mHttpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT);
HttpConnectionParams.setTcpNoDelay(params, true);
ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);
}
return mHttpClient;
}
public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {
// Making HTTP request
try {
HttpClient httpClient = getHttpClient();
HttpPost httpPost = new HttpPost(url);
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params);
httpPost.setEntity(formEntity);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
//in = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = reader.readLine()) != null) {
sb.append(line + NL);
}
is.close();
json = sb.toString();
Log.e("JSON", json);
}
catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
} |
User Functions Class
l' url: http://10.0.2.2/ pour connecter l' AVD avec le localhost
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 59 60 61 62 63 64 65 66 67 68
| package tn.pack.ordre.library;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
public class UserFunctions {
private JSONParser jsonParser;
private static String URL ="http://10.0.2.2/webservice/index.php";
private static String login_tag = "login";
private static String register_tag = "register";
// constructor
public UserFunctions(){
jsonParser = new JSONParser();
}
/**
* function make Login Request
* @param userName
* @param password
* */
public JSONObject loginUser(String userName, String password){
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tag", login_tag));
params.add(new BasicNameValuePair("userName", userName));
params.add(new BasicNameValuePair("password", password));
JSONObject json = jsonParser.getJSONFromUrl(URL, params);
return json;
}
/**
* function make Login Request
* @param name
* @param email
* @param userName
* @param password
* */
public JSONObject registerUser(String name, String email,String userName, String password){
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tag", register_tag));
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("email", email));
params.add(new BasicNameValuePair("userName", userName));
params.add(new BasicNameValuePair("password", password));
// getting JSON Object
JSONObject json = jsonParser.getJSONFromUrl(URL, params);
// return json
return json;
}
} |
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
| 06-11 22:57:04.278: W/KeyCharacterMap(283): No keyboard for id 0
06-11 22:57:04.278: W/KeyCharacterMap(283): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
06-11 22:57:16.238: D/dalvikvm(283): GC_FOR_MALLOC freed 6658 objects / 331744 bytes in 88ms
06-11 22:57:46.331: E/Buffer Error(283): Error converting result org.apache.http.conn.ConnectTimeoutException: Connect to /10.0.2.2:80 timed out
06-11 22:57:46.348: E/JSON Parser(283): Error parsing data org.json.JSONException: End of input at character 0 of
06-11 22:57:46.358: D/AndroidRuntime(283): Shutting down VM
06-11 22:57:46.358: W/dalvikvm(283): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
06-11 22:57:46.398: E/AndroidRuntime(283): FATAL EXCEPTION: main
06-11 22:57:46.398: E/AndroidRuntime(283): java.lang.IllegalStateException: Could not execute method of the activity
06-11 22:57:46.398: E/AndroidRuntime(283): at android.view.View$1.onClick(View.java:2072)
06-11 22:57:46.398: E/AndroidRuntime(283): at android.view.View.performClick(View.java:2408)
06-11 22:57:46.398: E/AndroidRuntime(283): at android.view.View$PerformClick.run(View.java:8816)
06-11 22:57:46.398: E/AndroidRuntime(283): at android.os.Handler.handleCallback(Handler.java:587)
06-11 22:57:46.398: E/AndroidRuntime(283): at android.os.Handler.dispatchMessage(Handler.java:92)
06-11 22:57:46.398: E/AndroidRuntime(283): at android.os.Looper.loop(Looper.java:123)
06-11 22:57:46.398: E/AndroidRuntime(283): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-11 22:57:46.398: E/AndroidRuntime(283): at java.lang.reflect.Method.invokeNative(Native Method)
06-11 22:57:46.398: E/AndroidRuntime(283): at java.lang.reflect.Method.invoke(Method.java:521)
06-11 22:57:46.398: E/AndroidRuntime(283): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-11 22:57:46.398: E/AndroidRuntime(283): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-11 22:57:46.398: E/AndroidRuntime(283): at dalvik.system.NativeStart.main(Native Method)
06-11 22:57:46.398: E/AndroidRuntime(283): Caused by: java.lang.reflect.InvocationTargetException
06-11 22:57:46.398: E/AndroidRuntime(283): at tn.pack.ordre.EnregistrerActivity.onClickValider(EnregistrerActivity.java:54)
06-11 22:57:46.398: E/AndroidRuntime(283): at java.lang.reflect.Method.invokeNative(Native Method)
06-11 22:57:46.398: E/AndroidRuntime(283): at java.lang.reflect.Method.invoke(Method.java:521)
06-11 22:57:46.398: E/AndroidRuntime(283): at android.view.View$1.onClick(View.java:2067)
06-11 22:57:46.398: E/AndroidRuntime(283): ... 11 more
06-11 22:57:46.398: E/AndroidRuntime(283): Caused by: java.lang.NullPointerException
06-11 22:57:46.398: E/AndroidRuntime(283): ... 15 more
06-11 23:01:51.498: I/Process(283): Sending signal. PID: 283 SIG: 9 |