本文实例讲述了Android通过json向MySQL中写入数据的方法。分享给大家供大家参考,具体如下:
先说一下如何通过json将Android程序中的数据上传到MySQL中:
首先定义一个类JSONParser.Java类,将json上传数据的方法封装好,可以直接在主程序中调用该类,代码如下
public class JSonParser {
static InputStream is = null;
static JSonObject jObj = null;
static String json = "";
// constructor
public JSonParser() {
}
// function get json from url
// by making HTTP POST
public JSonObject makeHttpRequest(String url, String method,
List params) {
// Making HTTP request
try {
// request method is POST
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
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, "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "n");
}
is.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
Log.d("json", json.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;
}
}
主程序中这样调用:
params = new ArrayList(); //这里可以替换成你自己程序中的一些键值对 params.add(new BasicNamevaluePair("time", ""+time)); params.add(new BasicNamevaluePair("lat", ""+lat)); params.add(new BasicNamevaluePair("lon", ""+lon)); params.add(new BasicNamevaluePair("encyptiontype",encyptiontype)); params.add(new BasicNamevaluePair("rssi",rssi)); params.add(new BasicNamevaluePair("name",name)); JSonParser jsonParser = new JSonParser(); //数据的php文件的路径 String url_up = "******/文件名字.php"; try{ JSonObject json = jsonParser.makeHttpRequest(url_up,"POST", params); Log.v("uploadsucceed", "uploadsucceed"); }catch(Exception e){ e.printStackTrace(); }
最后就是定义一个接收数据的php文件:
注意:如果你的设备中android操作系统是4.0以上的,那么要在主程序中加上下面一段代码,才能上传成功
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectNetwork() // or .detectAll() for all detectable problems .penaltyLog() .build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects() .detectLeakedClosableObjects() .penaltyLog() .penaltyDeath() .build());
如果是4.0以下的操作系统当然不用加了
下面是上传成功后的效果图:
读数据的方法讲放在下一篇《Android通过json向MySQL中读写数据的方法详解【读取篇】》中介绍
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。



