最近在学习Android客户端,刚好学到了Android的网络应用,钻研了一下,写一篇博客来记录学习心得。
由于安卓系统一般是作为客户端,所以我们除了需要编写客户端之外,还需要自己写一个服务端,这里的服务端我是用PHP+MySQL来建立的。
以下分为两个方面来详细说明:
服务端:
1.笔者的电脑搭建的是WAMP服务器环境,集成了PHP和Apache环境,所以我直接使用PHP来编写。
2.首先先建立相对应的数据库、数据表、以及字段名。(这里笔者建立了一个“android”的数据库,”user”的数据表,以及id、name、password、state的字段)
3.接下来是PHP搭建的服务端的代码:
<?php
```PHP
$conn=@mysql_connect("localhost","root",""); //与本地服务器连接
if(!$conn)
{
die('Could not connect'.mysql_error());
}
mysql_query("set name utf8");
mysql_select_db("android",$conn); //选择数据库
$name=$_POST['name']; //获取客户端传递过来的数据
$password=md5($_POST['password']);
//查询数据
$result=mysql_query("select * FROM user WHERE name='$name' and password='$password' ");
$info=mysql_fetch_array($result);
if(!$info)
{
echo "登录失败!";
}else{
$array=array('user'=>array('id'=>$info["id"],'username'=>$name,'password'=>$info["state"]));
echo json_encode($array);
}?>
```
客户端:
安卓系统提供了一个类:URLConnection类来让应用程序与URL进行通信。以下为建立URL的连接,发送请求以及读取服务器的返回数据的几个步骤:
①通过调用URL对象的openConnection()方法来创建URLConnection对象。
②设置URLConnection的参数和属性。
③发送GET或者POST请求
④建立连接后,利用输入流读取远程资源数据。
以下是客户端各部分的代码
PostUtil.java 工具类
```java
public class PostUtil
{
/**
*
*
public static String sendPost(String url, Map<String,String> params, String encode)
{
String data = getRequestData(params, encode).toString();//获得请求体
//System.out.print(data);
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try
{
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestPrope