上一篇文章我们已经讲解了Android studio 通过以servlet搭建的服务器访问 PC端 mysql数据库 的服务器端的实现步骤和方法 。
网址为:http://blog.csdn.net/snadijssajskkj/article/details/50554903
本文将继续讲解客户端(android)的实现。首先先说下几个注意点:
(类此网络可以查看本人之前写过的博文,http://blog.csdn.net/snadijssajskkj/article/details/50554803)
1、通过httpservlet访问网络,需要在AndroidManifest.xml中添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
2、避免出现android.os.NetworkOnMainThreadException的异常,需要在mainactivity中的onCreate(),添加Exception();
@TargetApi(Build.VERSION_CODES.HONEYCOMB) public void Exception(){ StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectLeakedClosableObjects() .penaltyLog().penaltyDeath().build()); }
以上为需要注意的,现在直接讲解客户端访问mysql数据库代码:
public volatile static String url1,url2,url;
//执行完query();后将result结果显示在edittext上
public void query() throws IOException, ParseException {//查询函数
url1="http://192.168.1.101:8080/webtt/HelloWorld";
//访问服务器创建的网页,192.168.1.101为pc的ip地址
url2="idAndstatement="+"3,关,";//传送的字段:表示的含义为id=3,状态为关
url=url1+"?"+url2;
System.out.println("1");
HttpGet request = new HttpGet(url);//调用servlet的doget方法
System.out.println("2"); //在这里执行请求,访问url,并获取响应
HttpResponse reponse =new DefaultHttpClient().execute(request);
System.out.println("3"); //获取返回码,等于200即表示连接成功,并获得响应
if(reponse.getStatusLine().getStatusCode()==200){
System.out.println("4"); //获取响应中的数据
result= EntityUtils.toString(reponse.getEntity());
System.out.println("结果为:"+result);//输出查询的结果
}else {
tvshow.setText("连接失败");
System.out.println("连接失败");
}}