文章目录
- 一、实现效果:
- 二、提前需要:
- 三、代码
- 1. 安卓部分
- 1. build.gradle
- 2. login.xml
- 3. loginActivity。【重要!! 这部分包含了get、post】
- 4. postRequest.java. [这部分是post带参数需要的Bean 实体类]
一、实现效果:
-
mysql数据库表里的情况:
-
安卓可以‘user_table’中的数据,注册新增用户,用户登陆。【写的很简单】
二、提前需要:
- springboot+mysql,连接好。
- spingboot中分别写get(带参数、不带参数)和post(带参数)三个接口
- 查询到本机的IP地址
三、代码
1. 安卓部分
1. build.gradle
implementation 'com.squareup.okhttp3:okhttp:4.4.1'implementation 'com.google.code.gson:gson:2.8.5'
2. login.xml
<LinearLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"xmlns:app&#61;"http://schemas.android.com/apk/res-auto"xmlns:tools&#61;"http://schemas.android.com/tools"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"android:orientation&#61;"vertical"tools:context&#61;".LogiActivity"><Buttonandroid:id&#61;"&#64;&#43;id/button"android:onClick&#61;"getRequest"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:text&#61;"查询所有用户" /><Buttonandroid:id&#61;"&#64;&#43;id/button3"android:onClick&#61;"getRequestParam"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:text&#61;"注册" /><Buttonandroid:id&#61;"&#64;&#43;id/button4"android:onClick&#61;"postRequestParam"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:text&#61;"登陆" />LinearLayout>
3. loginActivity。【重要&#xff01;&#xff01; 这部分包含了get、post】
package com.example.mainapp_bleda2;import android.os.Bundle;
import android.util.Log;
import android.view.View;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;import com.example.mainapp_bleda2.bean.PostRequest;
import com.google.gson.Gson;import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.TimeUnit;import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;public class LogiActivity extends AppCompatActivity {private static final String TAG &#61; "Login";&#64;Overrideprotected void onCreate(&#64;Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.login2);}public void getRequest(View view) {OkHttpClient okHttpClient &#61; new OkHttpClient.Builder().connectTimeout(8000, TimeUnit.MICROSECONDS).build();Request request &#61; new Request.Builder().get().url("http://172.20.10.2:8080/user/selectAll").build();okHttpClient.newCall(request).enqueue(new Callback() {&#64;Overridepublic void onResponse(&#64;NonNull okhttp3.Call call, &#64;NonNull Response response) throws IOException {Log.e(TAG, "onResponse: " &#43; response.code());Log.e(TAG, "onResponse: " &#43; response.body().string());}&#64;Overridepublic void onFailure(&#64;NonNull okhttp3.Call call, &#64;NonNull IOException e) {Log.e(TAG, "onFailure" &#43; e.toString());}});}public void getRequestParam(View view) {OkHttpClient okHttpClient &#61; new OkHttpClient.Builder().connectTimeout(8000, TimeUnit.MICROSECONDS).build();Map<String, String> map &#61; new HashMap<>();map.put("user_account", "444");map.put("user_pwd", "111");StringBuilder stringBuilder &#61; new StringBuilder();stringBuilder.append("?");Iterator<Map.Entry<String, String>> iterator &#61; map.entrySet().iterator();while (iterator.hasNext()){Map.Entry<String, String> next &#61; iterator.next();stringBuilder.append(next.getKey());stringBuilder.append("&#61;");stringBuilder.append(next.getValue());if (iterator.hasNext()){stringBuilder.append("&");}}String str &#61; stringBuilder.toString();Request request &#61; new Request.Builder().get().url("http://172.20.10.2:8080/user/register"&#43;str).build();okHttpClient.newCall(request).enqueue(new Callback() {&#64;Overridepublic void onResponse(&#64;NonNull okhttp3.Call call, &#64;NonNull Response response) throws IOException {Log.e(TAG, "onResponse: " &#43; response.code());Log.e(TAG, "onResponse: " &#43; response.body().string());}&#64;Overridepublic void onFailure(&#64;NonNull okhttp3.Call call, &#64;NonNull IOException e) {Log.e(TAG, "onFailure" &#43; e.toString());}});}public void postRequestParam(View view) {OkHttpClient okHttpClient &#61; new OkHttpClient.Builder().connectTimeout(8000, TimeUnit.MICROSECONDS).build();PostRequest request &#61; new PostRequest();request.setUser_account("111");request.setUser_pwd("1111");Gson gson &#61; new Gson();String jsonStr &#61; gson.toJson(request);MediaType mediaType &#61; MediaType.parse("application/json");RequestBody requestBody &#61; RequestBody.create(jsonStr, mediaType);Request request1 &#61; new Request.Builder().post(requestBody).url("http://172.20.10.2:8080/user/login").build();okHttpClient.newCall(request1).enqueue(new Callback() {&#64;Overridepublic void onResponse(&#64;NonNull okhttp3.Call call, &#64;NonNull Response response) throws IOException {System.out.println("111");Log.e(TAG, "onResponse: " &#43; response.code());Log.e(TAG, "onResponse: " &#43; response.body().string());}&#64;Overridepublic void onFailure(&#64;NonNull okhttp3.Call call, &#64;NonNull IOException e) {System.out.println("222");Log.e(TAG, "onFailure" &#43; e.toString());}});}
}
4. postRequest.java. [这部分是post带参数需要的Bean 实体类]
package com.example.mainapp_bleda2.bean;public class PostRequest {private String user_account;private String user_pwd;public String getUser_account() {return user_account;}public void setUser_account(String user_account) {this.user_account &#61; user_account;}public String getUser_pwd() {return user_pwd;}public void setUser_pwd(String user_pwd) {this.user_pwd &#61; user_pwd;}
}
学习于这个视频&#xff1a;戳-哔哩哔哩上的一个视频