这里是我的更新按钮功能
val task = UpdateTask(
taskName, taskDesc, category, dueDate, assignee, pointEarned
)
if (getData != null) {
val id2 = getData.taskId
Log.e("yes", "yes " + id2)
GroomedKidzApi.retrofitService.updateTask(id2, makeGSONRequestBody(task))
.enqueue(object : Callback<TasksItem?> {
override fun onResponse(
call: Call<TasksItem?>,
response: Response<TasksItem?>
) {
val responseBody = response.body()
if (responseBody != null) {
Log.e("qqq", "yes " + responseBody)
Toast.makeText(
this@UpdateTaskActivity,
"Update Successfully",
Toast.LENGTH_SHORT
).show()
}
}
override fun onFailure(call: Call<TasksItem?>, t: Throwable) {
Log.e("FAIL", "FAIL " + id2)
Toast.makeText(
this@UpdateTaskActivity,
"Update Unsuccessfully",
Toast.LENGTH_SHORT
).show()
}
})
}
字符串
我已经检索了特定的ID并放入id2中。这是我通过写入来更新任务ID的方式吗?
updateTask(id2, makeGSONRequestBody(task))
型
这将是我的API接口
@Headers("Content-Type: application/json")
@PUT("api/Tasks/{id}")
fun updateTask(@Path("id") id: Int, @Body requestBody: RequestBody): Call<TasksItem>
型
当我按下更新按钮时,我能够获得具有正确id 2的日志消息,但API甚至没有调用,onFailure消息也没有显示
1条答案
按热度按时间vdgimpew1#
您在Android应用程序中使用Retrofit更新任务的代码在结构上似乎是正确的。但是,如果您遇到的问题是甚至没有进行API调用,也没有触发onResponse和onFailure,则可能存在一些代码片段中无法立即显示的潜在问题。
要获得结果,请尝试以下故障排除步骤:
检查网络连接:
API端点和基础URL:
任务ID校验(id 2):
id2
是要更新的任务的正确ID和预期ID。记录id2
以确保它不是null或意外值。请求正文
(makeGSONRequestBody(task))
:makeGSONRequestBody(task)
创建了一个有效的JSON主体。记录makeGSONRequestBody(task)
的输出以确保其格式正确。Retrofit和OkHttpClient配置:
确保Retrofit示例配置正确。
线程问题:
onFailure错误处理:
字符串
服务器端检查:
代理或防火墙:
应用名称:
AndroidManifest.xml
中具有所需的网络权限:型
密码:
updateTask
方法以及它是否到达了enqueue调用。其他注意事项:
response.code()
以正确处理不同的HTTP响应代码。API变更:
测试替代方法:
API
执行不同的Retrofit调用(可能是简单的GET request
),以检查特定端点是否存在问题。通过有条不紊地完成这些步骤,您应该能够查明问题的原因并解决它。