广告
返回顶部
首页 > 资讯 > 移动开发 >Android使用http实现注册登录功能
  • 626
分享到

Android使用http实现注册登录功能

2024-04-02 19:04:59 626人浏览 独家记忆
摘要

在项目中实现注册登录有很多种方式,一般对于初学者来说,不使用框架,采用Http的post和get请求后台服务器,是一种更好理解底层源码的方式。使用框架实现注册登录虽然比自己封装pos

项目中实现注册登录有很多种方式,一般对于初学者来说,不使用框架,采用Http的post和get请求后台服务器,是一种更好理解底层源码的方式。使用框架实现注册登录虽然比自己封装post和get请求后台方便,但是不利于我们更好地理解其中的原理和机制。

实现的步骤大致分为以下几点:

1. 创建HttpPost对象,并将服务器接口地址url设置好。
2. 利用NameValuePair类设置相关参数,并将NameValuePair放入到list集合中。
3. 发起post请求获取返回实例HttpResponse。
4. 使用EntityUtils对返回值的实体进行处理(可以取得返回的字符串,也可以取得返回的byte数组),一般在服务器返回的都是JSON字符串。

注意事项:

1.在主线程中不能直接访问网络,要开辟子线程。
2.在子线程中不能直接更新ui。

MainActivity:

package wujie.com.myapplication11;


import Android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFORMEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private String url="http://192.168.1.101:8080/SHproject/homepage/reGISter";//服务器接口地址
    private EditText name,pwd;//用户名和密码
    private Button submit;//提交按钮
    private TextView result;//服务器返回结果
    //Handler用于接收服务端返回的数据更新ui
    private Handler hanlder=new Handler(){
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case 0:
                    String qq= (String) msg.obj;
                    result.setText("服务器返回: " + qq);

                    break;
            }
            super.handleMessage(msg);
        }
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化数据
        name= (EditText) findViewById(R.id.name);
        pwd= (EditText) findViewById(R.id.pwd);
        submit= (Button) findViewById(R.id.submit);
        result= (TextView) findViewById(R.id.result);

        submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
  
                new Thread() {
                    @Override
                    public void run() {
                        String name1=name.getText().toString().trim();
                        String pwd1=pwd.getText().toString().trim();

                        NameValuePair pair1 = new BasicNameValuePair("name", name1);
                        NameValuePair pair2 = new BasicNameValuePair("passWord", pwd1);
                        List<NameValuePair> pairList = new ArrayList<NameValuePair>();
                        pairList.add(pair1);
                        pairList.add(pair2);
                        try
                        {
                            HttpEntity requestHttpEntity = new UrlEncodedFormEntity(
                                    pairList);
                            // URl是接口地址
                            HttpPost httpPost = new HttpPost(url);
                            // 将请求体内容加入请求中
                            httpPost.setEntity(requestHttpEntity);
                            // 需要客户端对象来发送请求
                            HttpClient httpClient = new DefaultHttpClient();
                            // 发送请求
                            HttpResponse response = httpClient.execute(httpPost);
                            // 显示响应
                            showResponseResult(response);
                        }
                        catch (Exception e)
                        {
                            e.printStackTrace();
                        }

                    }
                }.start();

            }
        });

    }
    
    private void showResponseResult(HttpResponse response)
    {
        if (null == response)
        {
            return;
        }

        HttpEntity httpEntity = response.getEntity();
        try
        {
            InputStream inputStream = httpEntity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    inputStream));
            String result1 = "";
            String line = "";
            while (null != (line = reader.readLine()))
            {
                result1 += line;

            }

            System.out.println(result1);
            
            hanlder.obtainMessage(0,result1).sendToTarget();

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

    }
}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="wujie.com.myapplication11.MainActivity"
    android:orientation="vertical">

    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="用户名"
        />
    <EditText
        android:id="@+id/pwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="密码"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/submit"
        android:text="提交"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/result"
        android:textColor="#ff0000"
        android:textSize="20sp"
        android:paddingTop="18dp"/>
</LinearLayout>

运行截图:

网络权限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Android使用http实现注册登录功能

本文链接: https://www.lsjlt.com/news/147137.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android使用http实现注册登录功能
    在项目中实现注册登录有很多种方式,一般对于初学者来说,不使用框架,采用http的post和get请求后台服务器,是一种更好理解底层源码的方式。使用框架实现注册登录虽然比自己封装pos...
    99+
    2022-11-13
  • Android实现登录注册功能
    本文实例为大家分享了Android实现登录注册功能的具体代码,供大家参考,具体内容如下 运行环境 Android Studio 总体效果图 一、 设计注册页面的布局 二、完成注册...
    99+
    2022-11-13
  • Android用SharedPreferences实现登录注册注销功能
    Android用SharedPreferences实现登录注册注销功能 前言 本文用SharedPreferences本地缓存账号信息来实现登录注册功能,以及退出注销功能。 一、本文...
    99+
    2022-11-13
  • android登录注册功能如何实现
    要实现Android的登录注册功能,你可以按照以下步骤进行操作:1. 创建一个布局文件来设计登录和注册界面。可以使用EditText...
    99+
    2023-10-20
    android
  • Android实现登录注册功能封装
    我们都知道Android应用软件基本上都会用到登录注册功能,那么对一个一个好的登录注册模块进行封装就势在必行了。这里给大家介绍一下我的第一个项目中所用到的登录注册功能的,已经对...
    99+
    2022-06-06
    封装 Android
  • Android实现登录界面的注册功能
    本文实例为大家分享了Android登录界面的注册实现代码,供大家参考,具体内容如下 注册一个登录界面在控制台将输入的信息文本选框展示出来 xml界面设计(前面已发) <xml ...
    99+
    2022-11-13
  • Android用SharedPreferences怎么实现登录注册注销功能
    这篇“Android用SharedPreferences怎么实现登录注册注销功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2023-06-30
  • Android基于Sqlite实现注册和登录功能
    Android中基于Sqlite实现注册和登录功能,供大家参考,具体内容如下 前言 写这篇博客主要是为了巩固一下学的Sqlite知识以及梳理一下这个项目的逻辑 实现逻辑 项目的图片...
    99+
    2022-11-13
  • Python实现注册登录功能
    用Python写个注册登录功能,供大家参考,具体内容如下 本文是用Python写一个注册登录功能,难度不大,很适合练手主要就是用列表和字典,以及逻辑判断用到的第3方库模块是time模...
    99+
    2022-11-13
  • Node.js实现登录注册功能
    本文实例为大家分享了Node.js实现登录注册功能的具体代码,供大家参考,具体内容如下 目录结构 注册页面: reg.html <!DOCTYPE html> <...
    99+
    2022-11-13
  • Android中怎么利用MVP实现登录注册功能
    这篇文章给大家介绍Android中怎么利用MVP实现登录注册功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。model包:import com.bwei.mvps.bean.UserBean;public&...
    99+
    2023-05-30
    android mvp
  • Android中怎么利用OKhttp3实现登录注册功能
    这期内容当中小编将会给大家带来有关Android中怎么利用OKhttp3实现登录注册功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、Android前端实现新建一个login的项目,主要的几个文件在这...
    99+
    2023-06-20
  • QT实现用户登录注册功能
    本文实例为大家分享了QT实现用户登录注册的具体代码,供大家参考,具体内容如下 1、login.h #ifndef LOGIN_H #define LOGIN_H #include ...
    99+
    2022-11-13
  • Android如何实现登录界面的注册功能
    今天小编给大家分享一下Android如何实现登录界面的注册功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。注册一个登录界面...
    99+
    2023-06-30
  • python实现登录与注册功能
    本文实例为大家分享了python实现登录与注册的具体代码,供大家参考,具体内容如下 1. 案例介绍 本例设计一个用户登录和注册模块,使用 Tkinter 框架构建界面,主要用到画布、...
    99+
    2022-11-12
  • NodeJs+MySQL实现注册登录功能
    本文实例为大家分享了NodeJs+MySQL实现注册登录功能的具体代码,供大家参考,具体内容如下 之前写过一个没有连接数据库的注册与登陆的实现,这次加上了数据库 刚刚接触后端,很多不...
    99+
    2022-11-13
  • Android Studio|使用SqLite实现一个简单的登录注册功能
    本学期学习了Android Studio这门课程,本次使用Android Studio自带的sqlite数据库实现一个简单的登录注册功能。 目录 一、了解什么是Android Studio? 二、了解什么是sqlite? 三、创建项目文件 ...
    99+
    2023-10-06
    sqlite android studio 数据库
  • Android基于Sqlite怎么实现注册和登录功能
    本篇内容主要讲解“Android基于Sqlite怎么实现注册和登录功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android基于Sqlite怎么实现注册和登录功能”吧!实现逻辑项目的图片结...
    99+
    2023-06-30
  • JavaWeb实现用户登录与注册功能
    本文实例为大家分享了JavaWeb实现用户登录与注册的具体代码,供大家参考,具体内容如下 所用知识 客户端:HTML CSS JS (JQuery) 服务器:JAVA基础 ...
    99+
    2022-11-12
  • Java-web实现用户登录、注册功能
    源码在资源里 目录 环境搭建数据库 用户登录需求分析代码实现编写UserMapper类编写User类编写loginServlet类编写login.html编写login.css ...
    99+
    2023-10-10
    java 前端 servlet
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作