我想学习做网站,意识形态 网站建设存在的问题,网站建设方案的重要性,龙岗seo培训下面是一个使用 Kotlin 和 Jetpack Compose 来演示通过 OkHttp 发送 HTTP 请求的示例。这个示例包括在 Jetpack Compose 中发送一个 GET 请求和一个 POST 请求#xff0c;并显示结果。 添加okhttp依赖
首先#xff0c;在你的 build.gradle.kts 文件中添加必要的依赖#xf…下面是一个使用 Kotlin 和 Jetpack Compose 来演示通过 OkHttp 发送 HTTP 请求的示例。这个示例包括在 Jetpack Compose 中发送一个 GET 请求和一个 POST 请求并显示结果。 添加okhttp依赖
首先在你的 build.gradle.kts 文件中添加必要的依赖
dependencies {implementation(com.squareup.okhttp3:okhttp:4.10.0)//其他依赖
}INTERNET 权限
你需要在 AndroidManifest.xml 文件中添加网络权限声明。请按照以下步骤操作
打开 AndroidManifest.xml 文件。在 manifest 标签内添加 uses-permission android:nameandroid.permission.INTERNET/。
你的 AndroidManifest.xml 文件应该如下所示
manifest xmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.example.yourappuses-permission android:nameandroid.permission.INTERNET/applicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.YourAppactivity android:name.MainActivityintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application/manifest添加这个权限声明后再次运行你的应用程序它应该能够正常进行网络请求。
主程序代码
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.*
import okhttp3.*
import okhttp3.MediaType.Companion.toMediaType
import okio.IOExceptionclass MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {MyApp()}}
}Composable
fun MyApp() {var getResponse by remember { mutableStateOf(Loading...) }var postResponse by remember { mutableStateOf(Loading...) }LaunchedEffect(Unit) {getResponse performGetRequest()postResponse performPostRequest()}Column(modifier Modifier.padding(16.dp)) {Text(text GET Response:, style MaterialTheme.typography.bodyLarge)Spacer(modifier Modifier.height(8.dp))Text(text getResponse)Spacer(modifier Modifier.height(16.dp))Text(text POST Response:, style MaterialTheme.typography.bodyLarge)Spacer(modifier Modifier.height(8.dp))Text(text postResponse)}
}suspend fun performGetRequest(): String withContext(Dispatchers.IO) {val client OkHttpClient()val request Request.Builder().url(https://jsonplaceholder.typicode.com/posts/1).build()client.newCall(request).execute().use { response -if (!response.isSuccessful) throw IOException(Unexpected code $response)response.body?.string() ?: No response body}
}suspend fun performPostRequest(): String withContext(Dispatchers.IO) {val client OkHttpClient()val JSON application/json; charsetutf-8.toMediaType()val json { title: foo, body: bar, userId: 1 }val body RequestBody.create(JSON, json)val request Request.Builder().url(https://jsonplaceholder.typicode.com/posts).post(body).build()client.newCall(request).execute().use { response -if (!response.isSuccessful) throw IOException(Unexpected code $response)response.body?.string() ?: No response body}
}Preview(showBackground true)
Composable
fun DefaultPreview() {MyApp()
}
参考
某AI的生成