如何使用 Retrofit Android Kotlin 发布 [重复]

Posted

技术标签:

【中文标题】如何使用 Retrofit Android Kotlin 发布 [重复]【英文标题】:How To Post using Retrofit Android Kotlin [duplicate] 【发布时间】:2021-12-12 09:39:03 【问题描述】:

我有这样的 JSON,我想使用改造 android 发布这些数据

“状态”: ””, “信息”: ””, “数据”: “要求”: “文本数据”:“123”

我不知道如何发布这些数据,有人想帮我回答吗?

【问题讨论】:

您可以为请求创建 pojo 类,并通过在 API 接口中使用 @Body 对其进行注释将其作为正文传递 这能回答你的问题吗? Send Post Request with params using Retrofit 【参考方案1】:

您可以通过为您的请求创建 POJO 或数据类(在 kotlin 中)来实现,这样可以更轻松地执行此类操作。

MyRequest.kt

data class MyRequest(
    var status: String,
    var message: String,
    var data: MyData
)


data class MyData(
    var request: RequestData
)


data class RequestData(
    var textData: String
)

MyApiInterface.kt

interface MyApiInterface 
    @POST("/my_url_endpoint")
    fun myRequest(
        @Body request: MyRequest
    ): Call<Unit>

MyActivity.kt

....

val request = MyRequest(
    "Ok",
    "My Message",
    MyData(
        request = RequestData("Hello World")
    )
 )

RetrofitClient.api.myRequest(request).enqueue(object: Callback<Unit> 
  override fun onResponse(call: Call<Unit>, response: Response<Unit>) 
      // TODO: some task
  

  override fun onFailure(call: Call<Unit>, t: Throwable) 
      // TODO: some task
  
)

....

执行此请求后,如果您添加了日志拦截器,您可以使用以下正文检查该请求。

"data":"request":"textData":"Hello World","message":"My Message","status":"Ok"

【讨论】:

以上是关于如何使用 Retrofit Android Kotlin 发布 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中使用 Retrofit 发送 JSON POST 请求,并接收字符串响应

如何使用 Retrofit Android 解析对象内部的数组

如何使用 Retrofit 在 android 中调用图像上传 Web 服务 (ASP.NET) .asmx 文件

Android:使用 Retrofit 获取不同的对象列表数据

如何在Android上通过retrofit2调用带有Cognito Credentials的API网关?

深度详解Retrofit2使用实践