博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android+PHP服务器+MySQL实现安卓端的登录
阅读量:4577 次
发布时间:2019-06-08

本文共 4737 字,大约阅读时间需要 15 分钟。

时隔已久的一个任务,今天终于可以画上一个句号了。心情是万分的激动,虽然这份小成就来的有点迟但还是按捺不住心情的澎湃。下面我就先上几张图片来展示一下我的成绩

android源代码:

首先最重要的一件事是添加权限:

 

 

LoginActivity.java

package com.itcast.datalogin;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.content.Intent;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class LoginActivity extends Activity {    protected static final int ERROR = 2;    protected static final int SUCCESS = 1;    private EditText et_qq;    private EditText et_psd;    private Handler handler = new Handler(){        public void handleMessage(Message msg) {            switch (msg.what) {            case SUCCESS:                Toast.makeText(LoginActivity.this,(String)msg.obj, 1).show();                break;            case ERROR:                Toast.makeText(LoginActivity.this,"登录失败", 1).show();                break;            }        };         };          protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        et_qq = (EditText) findViewById(R.id.et_qq);        et_psd = (EditText) findViewById(R.id.et_pwd);       }    public void login(View view){        final String qq = et_qq.getText().toString();        final String psd = et_psd.getText().toString();              if(TextUtils.isEmpty(qq)||TextUtils.isEmpty(psd)){            Toast.makeText(this, "用户和密码不能为空", 0).show();            return;        }        new Thread(){            public void run(){                try {                      //http://localhost/xampp/android/login.php                    //区别1、url的路径不同                    String path = "http://192.168.1.101:80/xampp/login.php";                    URL url = new  URL(path);                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();                    //区别2、请求方式post                    conn.setRequestMethod("POST");                    conn.setRequestProperty("User-Agent", "Mozilla/5.0(compatible;MSIE 9.0;Windows NT 6.1;Trident/5.0)");                    //区别3、必须指定两个请求的参数                    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//请求的类型  表单数据                    String data = "username="+qq+"&password="+psd+"&button=";;                    conn.setRequestProperty("Content-Length", data.length()+"");//数据的长度                    //区别4、记得设置把数据写给服务器                    conn.setDoOutput(true);//设置向服务器写数据                    byte[] bytes = data.getBytes();                    conn.getOutputStream().write(bytes);//把数据以流的方式写给服务器                    int code = conn.getResponseCode();                    System.out.println(code);                            if(code == 200){                                InputStream is = conn.getInputStream();                                String  result = StreamTools.readStream(is);                                Message mas= Message.obtain();                                mas.what = SUCCESS;                                mas.obj = result;                                handler.sendMessage(mas);                                                }else{                    Message mas = Message.obtain();                    mas.what = ERROR;                    handler.sendMessage(mas);                    }                }catch (IOException e) {                    // TODO Auto-generated catch block                    Message mas = Message.obtain();                    mas.what = ERROR;                    handler.sendMessage(mas);                }            }        }.start();    }}

StreamTools.java

package com.itcast.datalogin;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;public class StreamTools {    /*     * 把一个流里面的内容转换成一个字符串     * return 流的字符串 null 解析失败     * */    public static String readStream(InputStream is){        try {            ByteArrayOutputStream baos = new ByteArrayOutputStream();            byte[] buffer = new byte[1024];            int len = -1;            while ((len = is.read(buffer))!=-1) {                baos.write(buffer,0,len);            }            baos.close();            return new String(baos.toByteArray());        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();            return "";        }    }}
activity_login.xml

PHP代码:

MySQL:

先创建一个名字为“mvc_study”的数据库。然后创建一个名字为“users”的表。

到此所有的工作已经完成了。可以进行测试了。测试的结果,去上面的一开始的两张截图。

 

转载于:https://www.cnblogs.com/kangyaping/p/5709276.html

你可能感兴趣的文章
ubuntu common software introduction
查看>>
资源相互引用时 需添加 PerformSubstitution=True
查看>>
MapRedece(单表关联)
查看>>
蒲公英App开发之检测新版本
查看>>
【安卓基础】倒计时按钮封装(验证码倒计时按钮)
查看>>
configparser模块
查看>>
SelectQueryBuilder的用法
查看>>
android的用户定位(一)
查看>>
creat-react-app搭建的项目中按需引入antd以及配置Less和如何修改antd的主题色
查看>>
IIS安装
查看>>
html块级元素和行级元素的区别和使用
查看>>
for循环嵌套
查看>>
寒冬夜行人
查看>>
poj1151 Atlantis
查看>>
HTML页面之间的参数传递
查看>>
java面试题集锦
查看>>
scikit-learn:4.2.3. Text feature extraction
查看>>
Spring Security构建Rest服务-0800-Spring Security图片验证码
查看>>
AE待整理
查看>>
java8中规范的四大函数式接口
查看>>