拼接接口判断点击注册登录

原创 2018年04月16日 14:11:48

//   MainActivity页面

package c.example.wang.myapplication413_4;



import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;


public class MainActivity extends AppCompatActivity implements View.OnClickListener {


    /**
     * 请输入手机号
     */
    private EditText mEtName;
    /**
     * 请输入密码
     */
    private EditText mEtPwd;
    /**
     * 注册
     */
    private Button mBtLogin;
    private static String SUBMIT_URL = "https://www.zhaoapi.cn/user/reg?mobile=%s&password=%s";
    private static String URL = "https://www.zhaoapi.cn/user/reg";
    private TextView mTv;
    /**
     * 新的注册方式
     */
    private Button mBtLogin2;
    /**
     * 截取字符串
     */
    private Button mBtLogin3;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
//        initView();




    }


    private void initView() {
        mEtName = (EditText) findViewById(R.id.etName);
        mEtPwd = (EditText) findViewById(R.id.etPwd);
        mBtLogin = (Button) findViewById(R.id.btLogin);
        mBtLogin.setOnClickListener(this);
        mTv = (TextView) findViewById(R.id.tv);
        mBtLogin2 = (Button) findViewById(R.id.btLogin2);
        mBtLogin2.setOnClickListener(this);
        mTv.setOnClickListener(this);
        mBtLogin3 = (Button) findViewById(R.id.btLogin3);
        mBtLogin3.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.btLogin:
                //获取用户输入的用户名和密码
                String name = mEtName.getText().toString();
                String pwd = mEtPwd.getText().toString();
                //验证用户名或密码是否正确
                if (checkPhone(name) && !checkPwd(pwd)) {
                    //使用Okhttp进行网络请求
//                    submit(name, pwd);
                    submit3(name, pwd);
                } else {
                    Toast.makeText(MainActivity.this, "账号密码输入有误!!!", Toast.LENGTH_SHORT).show();
                }




                break;
            case R.id.btLogin2:
//                method1();


                //获取用户输入的用户名和密码
                String n = mEtName.getText().toString();
                String p = mEtPwd.getText().toString();
                //验证用户名或密码是否正确
                if (checkPhone(n) && !checkPwd(p)) {
                    method2(n, p);
                }


                break;
            case R.id.tv:
                break;
            case R.id.btLogin3:
                String s = "?mobile=12354678954&password=123456&";
                String substring = s.substring(0, s.length() - 1);
                Log.e("MainActivity", "substring = " + substring);
                break;
        }
    }


    private void method2(String phone, String pwd) {
        OkhttpUtils okhttpUtils = OkhttpUtils.getInstance();
        Map<String, String> params = new HashMap<>();
        params.put("mobile", phone);
        params.put("password", pwd);
        okhttpUtils.doGet(URL, params);
    }


    private void method1() {
        OkhttpUtils okhttpUtils = OkhttpUtils.getInstance();
        //获取用户输入的用户名和密码
        String n = mEtName.getText().toString();
        String p = mEtPwd.getText().toString();
        //验证用户名或密码是否正确
        if (checkPhone(n) && !checkPwd(p)) {
            String url = String.format(SUBMIT_URL, n, p);
            okhttpUtils.doGet(url);
        } else {
            Toast.makeText(MainActivity.this, "账号密码输入有误!!!", Toast.LENGTH_SHORT).show();
        }
    }


    /**
     * post请求
     *
     * @param name
     * @param pwd
     */
    private void submit3(String name, String pwd) {
        //创建OkHttpClient对象
        OkHttpClient okHttpClient = new OkHttpClient();
        //创建Request
        FormBody.Builder builder = new FormBody.Builder();
        builder.add("mobile", name);
        builder.add("password", pwd);
        FormBody formBody = builder.build();
        Request request = new Request.Builder().url("https://www.zhaoapi.cn/user/reg").post(formBody).build();


        //请求数据
        okHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {


            }


            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final String string = response.body().string();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mTv.setText(string);
                    }
                });
            }
        });
    }


    /**
     * 同步请求
     *
     * @param name
     * @param pwd
     */
    private void submit2(String name, String pwd) {
        final OkHttpClient okHttpClient = new OkHttpClient();
        String url = String.format(SUBMIT_URL, name, pwd);
        final Request request = new Request.Builder().url(url).build();


        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Response response = okHttpClient.newCall(request).execute();
                    String string = response.body().string();
                    Log.e("MainActivity", "string = " + string);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();




    }




    /**
     * 注册
     *
     * @param name
     * @param pwd
     */
    private void submit(String name, String pwd) {
        //创建OkhttpClient
        OkHttpClient okHttpClient = new OkHttpClient();
        //创建Requet对象
        String url = String.format(SUBMIT_URL, name, pwd);
        Log.e("MainActivity", "url = " + url);
        Request request = new Request.Builder().url(url).build();
        Log.e("MainActivity", "线程名 = " + Thread.currentThread().getName());
        //进行请求
        okHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.e("MainActivity", "onFailure");
            }


            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final String string = response.body().string();
                Log.e("MainActivity", "线程名 = " + Thread.currentThread().getName());
                Log.e("MainActivity", "string = " + string);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mTv.setText(string);
                    }
                });




            }
        });
    }


    /**
     * 验证手机号是否正确
     *
     * @return
     */
    private boolean checkPhone(String phone) {
        Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
        Matcher m = p.matcher(phone);
        return m.matches();
    }


    /**
     * 验证密码是否为空
     *
     * @param pwd
     * @return
     */
    private boolean checkPwd(String pwd) {
        return TextUtils.isEmpty(pwd);
    }

}


//工具类

package c.example.wang.myapplication413_4;

import android.util.Log;


import java.io.IOException;
import java.util.Map;


import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;


public class OkhttpUtils {
    //private static OkhttpUtils okhttpUtils = new OkhttpUtils();//饿汉式
    private static OkhttpUtils okhttpUtils;
    private final OkHttpClient okHttpClient;


    //构造方法要私有化
    private OkhttpUtils() {
        //创建OkhttpClient
        okHttpClient = new OkHttpClient();
    }


    //懒汉式
    public static OkhttpUtils getInstance() {
        if (okhttpUtils == null) {
            okhttpUtils = new OkhttpUtils();
        }
        return okhttpUtils;
    }


    /*饿汉式
    public static OkhttpUtils getInstance(){
        return okhttpUtils;
    }*/




    public void doGet(String url, Map<String, String> params) {
        //判断params是否为null
        if (params != null) {
            StringBuilder sb = new StringBuilder();
            sb.append("?");
            for (Map.Entry<String, String> entry : params.entrySet()) {
                sb.append(entry.getKey());
                sb.append("=");
                sb.append(entry.getValue());
                sb.append("&");
            }
            //?mobile=12354678954&password=123456&
            String s = sb.toString();
            String strParam = s.substring(0, s.length() - 1);
            url += strParam;
            Log.e("sdfasdf", "url = " + url);
        }
        Request request = new Request.Builder().url(url).build();
        okHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {


            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final String string = response.body().string();
                Log.e("MainActivity", "string = " + string);
            }


        });
    }


    /**
     * GET请求
     */
    public void doGet(String url) {
        //创建Requet对象
        Request request = new Request.Builder().url(url).build();
        //进行请求
        okHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.e("MainActivity", "onFailure");
            }


            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final String string = response.body().string();
                Log.e("MainActivity", "string = " + string);
            }
        });


    }


}


//MainActivity的副本

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#00ff00"
        android:gravity="center"
        android:text="注册"
        android:textColor="#ffffff"
        android:textSize="25sp"/>


    <EditText
        android:id="@+id/etName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入手机号"


        />


    <EditText
        android:id="@+id/etPwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入密码"


        />


    <Button
        android:id="@+id/btLogin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff0000"
        android:text="注册"/>


    <Button
        android:id="@+id/btLogin2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"


        android:text="新的注册方式"/>


    <Button
        android:id="@+id/btLogin3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"


        android:text="截取字符串"/>


    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"


        android:layout_height="wrap_content"/>

</LinearLayout>

//  记得联网请求

如何进行接口拼接

//1.获取首接口部分 private void resssd(){ try { URL url=new URL("http://120.27.23.105/produ...
  • qq_41554204
  • qq_41554204
  • 2018-01-09 16:03:04
  • 163

url接口拼接问题

在测试url拼接的时候,并没发现什么问题,后来一拼接url时参数发生了改动,发现通过调用对方提供的接口,获取不到相应的结果,以为是对方返回值出了问题,在浏览器拼好url去测试,发现返回值被没有问题,但...
  • god123209
  • god123209
  • 2011-10-17 13:40:28
  • 3393

cocos2d-x 学习笔记-判断点击点是否在不规则多边形中

本文使用的射线方法, 自己的总结: 注意:        1. 首先射线有可能同时经过多边形的多个顶点, 在此只设置每条线段前面的端点可以相交, 后面的端点不相交。        2. 点在边上:这种...
  • u012487504
  • u012487504
  • 2014-01-11 10:54:42
  • 2115

PHP+MySQL实现用户登录注册API接口

最近在学习PHP后台相关知识,利用PHP连接MySQL数据库实现了一个简单的用户登录注册及修改密码的API接口,接口为标准的json输出,本地验证通过。功能比较简单,不过也自己摸索了挺长时间,期间各种...
  • zhugehengheng
  • zhugehengheng
  • 2015-03-26 09:12:30
  • 6218

mybatis根据参数动态拼接多个where条件

          在工作中使用mybatis对单表查询操作时,因为查询条件的不同而在mapper文件中写多条sql语句,导致mapper文件臃肿。为了解决这一问题,希望通过传递不同参数mybatis...
  • xiangwangye66
  • xiangwangye66
  • 2017-09-29 14:40:11
  • 1326

拼接接口

M层 MainModelImpl public class MainModelImpl { public void getData(final ModelCallBack ca...
  • cm1606530815
  • cm1606530815
  • 2017-12-03 20:30:15
  • 66

用户手机号注册登录(包括接口)

package com.fangshuoit.kuaikao.activity; import android.content.Intent; import android.os.Bundle; i...
  • walk_man_3
  • walk_man_3
  • 2017-02-25 17:40:03
  • 1456

接口 登录、注册、信息

build.gradle apply plugin: 'com.android.application'android { compileSdkVersion 26 defaultC...
  • jiaosheng1
  • jiaosheng1
  • 2017-12-12 14:48:45
  • 223

python 登录注册接口代码,操作数据库

  • 2018年02月28日 09:12
  • 3KB
  • 下载

浅谈拼接处理器中用到的几类接口

视频拼接控制器是专业的视频处理与控制设备,这里简单分析接口的种类!
  • wylloong
  • wylloong
  • 2015-09-26 11:10:34
  • 556
收藏助手
不良信息举报
您举报文章:拼接接口判断点击注册登录
举报原因:
原因补充:

(最多只允许输入30个字)