Android ClientToSever Test

实现客户端上传数据到服务器端

  • 搭建服务器,新建数据库;
  • 新建PHP文件;
  • 新建android工程;
1. 在本地下载XAMPP软件后进行安装和配
  • 配置XAMPP
     在浏览器里输入:localhost或者127.0.0.1即可看到XAMPP欢迎界面。
  • 修改phpMyAdmin配置
                 首先用相关软件打开位于D:/xampp/phpMyAdmin(安装目录)文件夹中的config.inc.php文件。
      搜索 $cfg[‘Servers‘][$i][‘auth_type‘]=‘config‘ 将其中的config(系缺省值)更改为cookie保存。
  • 登陆XAMPP主页      
   通过默认主页localhost左侧的phpmyadmin导航栏进入phpmyadmin界面,可直接通过localhost/phpmyadmin/进入web登陆界面,输入用户名root后直接点击登陆(密码默认为空)即可。
  • 新建管理员账号及密码
   首先进入权限选项卡,点击root帐号编辑其权限,在最底端的只输入相应的用户名和密码,其余选项保持其缺省值,确认后即可产生与原有root帐号相同权限的新帐号
  • 测试配置是否完成  
   您可以在xampp目录下的htdocs文件夹下创建任意一个站点。例如:将测试文件test.html放在.\xampp\htdocs\new路径下,您就可以在浏览器的地址栏中输入localhost/new/test.html来访问这个文件。
 

2. 在服务器上新建数据库

  • 浏览器打开localhost/phpmyadmin/或者在XAMPP Control Panel面板上点击MySQL的Admin按钮进入网页
  • 点击“数据库”选项卡进行数据哭创建,输入数据库名即可。
  • 在页面左侧点击新建数据库,即可进行数据表的新建。输入新建数据表的名称字段数,点击执行即可创建。
3. 新建php文件
     
<?php
               
$conn = mysql_connect("localhost"."siguoyi","140265");  // 连接服务器
                if(!conn){
                      die("conn error");
                    }
     $db = mysql_select_db("buptant",$conn);   // 连接数据库
     mysql_set_charset("utf8");
     
     $jsonString = $_POST("jsonString");
     $jsonString = str_replace(‘\"‘,‘"‘,$jsonString);
     $obj = json_decode($jsonString);
     $name = $obj->name;
     $age= $obj->age;
     $sex= $obj->sex;
     $school= $obj->school; // 对变量进行赋值
try {
     $sql = "INSERT INTO `student` (`name`,`age`,`sex`,`school`) VALUES (‘$name‘,‘$age‘,‘$sex‘,‘$school‘)";  // 插入数据
     $resultNew = mysql_query($sql,$conn);
     if(!$resultNew){
          echo "error";
     }else{
          echo "ok";
     }  // 查询数据是否插入
$insert_id = mysql_insert_id();
} catch (Exception $e){ }
      ?>

4. 新建Android工程
  • 用json对数据进行打包上传
String name = et_name.getText().toString();
                         String age = et_age.getText().toString();
                         String sex = et_sex.getText().toString();
                         String school = et_school.getText().toString();
                         try {
                              jsonObject.put("name", name);
                              jsonObject.put("age", age);
                              jsonObject.put("sex", sex);
                              jsonObject.put("school", school);
                         } catch (JSONException e) {
                              e.printStackTrace();
                         }
                         Log.v("uploaddata", "json" + jsonObject);
                         
  • 用httpClient进行通信
   
public String upData() {
        String resultID = "-1";
        List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
        nameValuePair.add(new BasicNameValuePair("jsonString", jsonObject));
        InputStream inputStream = null;
        try {
            HttpClient httpClient = new DefaultHttpClient();
           
            HttpPost httpPost = new HttpPost(uploadDataURL);
            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair, "UTF-8"));
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            inputStream = httpEntity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String line = "";
            String result = "";
            while ((line = reader.readLine()) != null) {
                result = result + line;
            }
            resultID = result;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resultID;
    }
  • 在进行数据上传时需新开线程
     new Thread(){
                              @Override
                              public void run() {
                                   // TODO Auto-generated method stub
                                   UploadData upload = new UploadData(Url, jsonObject);
                                   String result = upload.upData();
                                   Log.v("uploaddata", "result:" + result);
                              }
                              
                         }.start();
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。