Android 前端 连接 springboot后端开发

        自己切身实际开发中发现就三点是比较有疑问:1、安卓前端http请求工具的使用 2、前端如何构建请求 3、后端接口如何调用

1、安卓前端http请求工具

  使用retrofit2 http请求工具来构造请求。

  首先导入依赖。

    implementation ("com.squareup.retrofit2:retrofit:2.9.0")
    implementation ("com.squareup.retrofit2:converter-gson:2.9.0")

 2、前端如何构建请求

创建api接口类,以我的项目为例,这里主要是配置请求路径和传递的参数。

import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.POST
import retrofit2.http.PUT
import retrofit2.http.Query
import java.lang.Thread.State
data class ScanData(
    val scanData: String ,
    val state: String)
data class User(
    val username: String,
    val password: String
)
//data class State(val state:String)

interface ApiService {
    @POST("/pda")
    fun submitScanData(@Body scanData: ScanData ): Call<ApiResponse<Any>>


    @PUT("/pda/update")
    fun submitOutboundData(@Body scanData: ScanData):Call<ApiResponse<Any>>

    @POST("/user/login")
    fun submitLogin(
        @Query("username")username: String,
        @Query("password")password: String
    ):Call<ApiResponse<Any>>

}

 3、后端接口如何调用

创建retrofit实例,配置后端的路径和端口并导入apiService。

class MainActivity : ComponentActivity() {
    private lateinit var apiService: ApiService

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Security.insertProviderAt(Conscrypt.newProvider(), 1)
        enableEdgeToEdge()

        // 创建 Retrofit 实例
        val retrofit = Retrofit.Builder()
            .baseUrl("yourhost")  // 替换为你的 API 地址
            .addConverterFactory(GsonConverterFactory.create())
            .build()
        apiService = retrofit.create(ApiService::class.java)

        setContent {
            PdaApplicationTheme {
                AppNavigation(apiService)
            }
        }
    }
}

按钮点击操着 发送http请求,以我的项目为例,这里传递的参数必须与apiService相对应,同时也要根据后端实体类来确定命名。

Button(
                onClick = {
                    apiService.submitLogin(username = userName.text, password = passWord.text)
                        .enqueue(object : Callback<ApiResponse<Any>> {
                            override fun onResponse(
                                call: Call<ApiResponse<Any>>,
                                response: Response<ApiResponse<Any>>
                            ) {
                                val apiResponse = response.body()
                                if (response.isSuccessful && apiResponse != null) {
                                    if (apiResponse.code == 0) {
                                        Toast.makeText(
                                            context,
                                            "登录成功",
                                            Toast.LENGTH_SHORT
                                        ).show()
                                        navController.navigate("main") {
                                            popUpTo("login") { inclusive = true }
                                            launchSingleTop = true
                                        }
                                    } else {
                                        Toast.makeText(
                                            context,
                                            "登录失败: ${apiResponse.message}",
                                            Toast.LENGTH_SHORT
                                        ).show()
                                    }
                                } else {
                                    Toast.makeText(
                                        context,
                                        "登录失败: ${response.message()}",
                                        Toast.LENGTH_SHORT
                                    ).show()
                                }
                            }

                            override fun onFailure(call: Call<ApiResponse<Any>>, t: Throwable) {
                                Toast.makeText(
                                    context,
                                    "网络错误: ${t.message}",
                                    Toast.LENGTH_SHORT
                                ).show()
                            }
                        })
                },
                modifier = Modifier
                    .padding(16.dp)
                    .fillMaxWidth(0.6f)
                    .fillMaxHeight(0.15f)
            ) {
                Text("登录")
            }

总结:

请求协议,Android9开始使用加密通信,所以在生产环境中要进行权限释放,在AndroidManifest.xml加入以下配置

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

后端yml文件,配置允许全部端口访问,在局域网内,一定要开放权限。

server:
  port: 8080
  address: 0.0.0.0

本文设计并实现了一个基于Android和Spring Boot的网络社区系统,主题是心理互助,开发目的是为了让出现轻度心理问题的人们有一个交流互动的平台,通过线上交流、平等互助地方式改善每一个人的心理状态,成为一个身心健康的人。本心理互助社区系统的特点是交际性、免费性、互助性和非专业性。 本文遵循了软件工程的标准开发流程,经过需求分析、总体设计、详细设计、系统实现和系统测试五大流程,最终完成了整个系统的开发。依据总体分析阶段的成果,本文将整个系统分为了六大功能模块,分别为登录注册模块、系统管理模块、个人主页模块、问答社区模块、树洞模块和小组模块,后三个模块为系统的主要模块。其中,问答社区模块为人们提供了一个自由提问回答的平台,使得人们能够在这里分享和找到自己心理问题相似的信息;树洞模块则提供了一个匿名倾诉的平台,人们可以在这里以匿名方式表达自己的心事;小组模块提供了一个线上小组交流的平台,人们可以在这里创建和加入心仪的小组,小组内的人进行畅谈。 本系统在客户端使用了Android Studio开发环境,使用了Gradle项目管理工具,同时,使用了OkHttp,Gson,Glide等开源类库。在服务器端使用了IntelliJ IDEA作为开发环境,使用了Maven项目管理工具,并使用Nginx实现了资源的动静分离,同时选用了MySQL作为数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值