Andriod连接

1.创建项目:


2.配置:
AndroidManifest.xml添加语句

点击查看代码
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

  android:usesCleartextTraffic="true"
3.架构 ![](https://img2024.cnblogs.com/blog/3474860/202503/3474860-20250313191742434-1831724861.png)

4.具体代码:
ServiceCreater

点击查看代码
package com.qi.myapplication.network

import com.google.gson.GsonBuilder
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

object ServiceCreater {
    val gson = GsonBuilder().setLenient().create()
    private const val BASE_URL="http://192.168.15.156:8090/"
    private val retrofit=Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create(gson))
        .build()
    fun <T> create(serviceClass: Class<T>): T= retrofit.create(serviceClass)
    inline fun<reified T> create(): T= create(T::class.java)
}
User2
点击查看代码
package com.qi.myapplication.emtpy

data class User2 (
    val name: String? = null,
    val password: String? = null
)
User2Service
点击查看代码
package com.qi.myapplication.Service

import com.qi.myapplication.emtpy.User2
import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.POST

interface User2Service {
    @POST("user2/add")
    fun add(@Body user2: User2):Call<String>
}
MainActivity
点击查看代码
package com.qi.myapplication

import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.EditText
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.qi.myapplication.Service.User2Service
import com.qi.myapplication.emtpy.User2
import com.qi.myapplication.network.ServiceCreater
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response

class MainActivity : AppCompatActivity() {

    lateinit var submit:Button
    lateinit var username:EditText
    lateinit var password:EditText

    @SuppressWarnings("MissingInflatedId")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)
        submit=findViewById(R.id.submit)
        username=findViewById(R.id.username)
        password=findViewById(R.id.password)

        val user2Service =ServiceCreater.create<User2Service>()


        submit.setOnClickListener {
            val user = User2(username.text.toString(), password.text.toString())
            Log.e("TAG", "onCreate: ${user.toString()}", )
            println(user) // 输出: User2(name=Bob, password=654321)
            user2Service.add(user).enqueue(object :Callback<String>{
                override fun onResponse(call: Call<String>, response: Response<String>) {
                    val re=response.body()
                    Log.e("TAG", "onResponse: ${re}",)
                    Log.e("TAG", "onResponse: ${response}", )
                }

                override fun onFailure(call: Call<String>, t: Throwable) {
                    TODO("Not yet implemented")
                }
            })
        }
    }
}
activity_main.xml
点击查看代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:hint="请输入用户名"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.216" />

    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入密码"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.309"
        tools:layout_editor_absoluteX="16dp" />

    <Button
        android:id="@+id/submit"
        android:layout_width="149dp"
        android:layout_height="48dp"
        android:text="提交"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.446" />

</androidx.constraintlayout.widget.ConstraintLayout>
posted @ 2025-03-13 19:17  QixunQiu  阅读(14)  评论(0)    收藏  举报