| 
 | 
 
OkHttp 是一个流行的 HTTP 客户端库,用于在 Android 和 Java 应用中发送和接收网络请求。下面是一个使用 OkHttp 发送 POST 请求的示例。 
首先,确保你的项目中包含了 OkHttp 的依赖。在你的 build.gradle 文件中添加以下依赖: 
- dependencies {
 
 -     implementation 'com.squareup.okhttp3:okhttp:4.9.3' // 请检查并使用最新版本
 
 - }
 
 
  复制代码 然后,你可以使用以下代码来发送一个 POST 请求:- import okhttp3.*
 
 - import java.io.IOException
 
  
- fun main() {
 
 -     // 创建 OkHttpClient 实例
 
 -     val client = OkHttpClient()
 
  
-     // 创建请求体(这里是一个简单的 JSON 字符串,实际应用中可能是一个更复杂的对象)
 
 -     val json = """
 
 -         {
 
 -             "username": "exampleUser",
 
 -             "password": "examplePass"
 
 -         }
 
 -     """.trimIndent()
 
  
-     val body = RequestBody.create(
 
 -         mediaType("application/json; charset=utf-8"), json
 
 -     )
 
  
-     // 构建请求对象
 
 -     val request = Request.Builder()
 
 -         .url("https://example.com/api/login") // 替换为你的目标 URL
 
 -         .post(body) // 使用 POST 方法并设置请求体
 
 -         .build()
 
  
-     // 发送请求并获取响应
 
 -     client.newCall(request).enqueue(object : Callback {
 
 -         override fun onFailure(call: Call, e: IOException) {
 
 -             // 请求失败时回调此方法
 
 -             e.printStackTrace()
 
 -         }
 
  
-         override fun onResponse(call: Call, response: Response) {
 
 -             // 请求成功时回调此方法
 
 -             if (response.isSuccessful) {
 
 -                 // 打印响应体
 
 -                 println(response.body?.string())
 
 -             } else {
 
 -                 // 处理不成功的响应
 
 -                 println("Response code: ${response.code}")
 
 -                 println("Response message: ${response.message}")
 
 -             }
 
  
-             // 注意:response.body?.string() 只能调用一次,因为它会消耗响应体。
 
 -             // 如果你需要多次访问响应体,应该先将其保存到变量中。
 
 -         }
 
 -     })
 
  
-     // 注意:上面的代码是异步执行的。enqueue 方法会将请求添加到调度队列中,
 
 -     // 并在后台线程中执行。当响应可用时,onResponse 或 onFailure 方法会被调用。
 
 -     // 如果你需要同步执行请求,可以使用 execute 方法,但这应该在非主线程中进行,
 
 -     // 因为它会阻塞当前线程直到响应返回。
 
 - }
 
  
- // 辅助函数,用于创建 MediaType 对象
 
 - fun mediaType(type: String): MediaType {
 
 -     return MediaType.parse(type) ?: MediaType.get("application/octet-stream")
 
 - }
 
 
  复制代码 在上面的代码中,我们首先创建了一个 OkHttpClient 实例。然后,我们构建了一个包含 JSON 数据的 RequestBody 对象。接着,我们使用 Request.Builder 来创建一个 Request 对象,设置 URL 和 POST 方法,并将请求体附加到请求上。最后,我们使用 client.newCall(request).enqueue(...) 方法异步发送请求,并在回调中处理响应。 
请注意,上面的代码示例是在一个 Kotlin 控制台应用程序中运行的。如果你在 Android 应用中使用 OkHttp,你应该在适当的生命周期方法(如 onCreate)中发送请求,并确保在请求完成时更新 UI(通常是在 onResponse 回调中,但需要在主线程上进行)。此外,处理网络请求时,你应该考虑添加错误处理、重试逻辑和超时设置等。 
 
 |   
 
 
 
 |