如何使用改造显示来自 POST 响应的列表?

how to show list from POST response using retrofit?

我想显示改造后的响应 POST。我真的不知道怎么做,因为我的回复是数组,但是 POST.

我的回复是这样的

    {
   "message":[
      "00",
      "Get Success"
   ],
   "result":{
      "listProgram":[
         {
            "banner":"",
            "area":"",
            "domainlembaga":"",
            "domainprogram":"",
            "donate":0
        {
       .
       .
       .
       ]

服务

    interface Service {

    @POST("program/list")
fun getProgram(@Body body: Pair<String, Int>, pair: Pair<String, Int>): Call<BaseBersedekahResponse<ListProgramBersedekahResponse>>

数据

data class BaseBersedekahResponse<T>(
    @SerializedName("message") val message: String?,
    @SerializedName("result") val result: T?
)

data class ListProgramBersedekahResponse(
    @SerializedName("listProgram") val listProgram: List<ProgramBersedekahResponse>?
)

data class ProgramBersedekahResponse(
    @SerializedName("banner") val banner: String?,
    @SerializedName("domainlembaga") val domainlembaga: String?,
    @SerializedName("domainprogram") val domainprogram: String?,
    @SerializedName("donate") val donatur: Int?
)

activity

val retrofit: Retrofit = Retrofit.Builder()
            .baseUrl(APIUrl.BASEURL)
            .addConverterFactory(GsonConverterFactory.create())
            .build()

val apiService: Service = retrofit.create(Service::class.java)

val call: Call<BaseBersedekahResponse<ListProgramBersedekahResponse>> = apiService.getProgram(
            "limit" to 1,
            "group" to 4)

    call.enqueue(object : Callback<BaseBersedekahResponse<ListProgramBersedekahResponse>> {
        override fun onResponse(call: Call<BaseBersedekahResponse<ListProgramBersedekahResponse>, response: Response<BaseBersedekahResponse<ListProgramBersedekahResponse>>) {
            val getProgram: List<ProgramBersedekahResponse?>? = response.body().result.listProgram
            Toast.makeText(applicationContext, "success", Toast.LENGTH_SHORT).show()
        }

        override fun onFailure(call: Call<BaseBersedekahResponse<ListProgramBersedekahResponse>>, t: Throwable) {
            Toast.makeText(applicationContext, "Failure", Toast.LENGTH_SHORT).show()
        }
    })

我实际上计划在 RecyclerView 中显示它,但我仍然不知道如何显示它来自 POST 的响应。请帮忙

你们的签名应该相互匹配。您应该使您的签名与您界面中的签名相同。

对于您的请求正文:

data class BersedekahRequest(
   @SerializedName("limint") val limint: Int, 
   @SerializedName("group") val group: Int
)

然后你的界面:

@POST("program/list")
fun getProgram(@Body body: BersedekahRequest): Call<BaseBersedekahResponse<ListProgramBersedekahResponse>>

您的休息服务电话:

val requestBody = BersedekahRequest(10,20) 
val call: Call<BaseBersedekahResponse<ListProgramBersedekahResponse>> = apiService.getProgram(requestBody)

call.enqueue(object : Callback<BaseBersedekahResponse<ListProgramBersedekahResponse>> {
    override fun onResponse(call: Call<BaseBersedekahResponse<ListProgramBersedekahResponse>, response: Response<BaseBersedekahResponse<ListProgramBersedekahResponse>>) {
        val GetApps2: List<ProgramBersedekahResponse?>? = response.body().result.listProgram
        Toast.makeText(applicationContext, "success", Toast.LENGTH_SHORT).show()
    }

    override fun onFailure(call: Call<ListProgramBersedekahResponse>, t: Throwable) {
        Toast.makeText(applicationContext, "Failure", Toast.LENGTH_SHORT).show()
    }
})

而且我认为你还有一个问题。 fun getProgram(@Body body: ProgramBersedekahResponse?) 此 @Body 是您将通过 POST 请求发送的正文,而不是您的响应正文。如果您不在 post 正文中发送任何内容,请将其清空,或提供适当的请求正文,因为它看起来像是您现在的响应对象。