Hello mn e mới học android và đang áp dụng mvvm vào call api thông qua retrofit thì gặp lỗi sau đã thử mọi cách mã vẫn không fix được các a đi qua có thể giúp e với ạ.e cảm ơn ạ!
E muốn là khi post trả về 1 id sau đó phương thức get sẽ nhận id đó là call api ạ. Mà khi chạy thì chỉ post và lấy đc data trả về rồi k vào được hàm get ạ, e có thử comment post set cứng id cho get thì
chạy được kiểu cứ 1 cái chạy dc còn đồng thời thì k chạy đc ý ạ. e mới học mô tả còn hơi lủng củng mn có thể xem code và cho e biết e sai ở đâu hay cho e xin keyword được k ạ. e cảm ơn ạ
interface APIService {
@Headers("Accept: application/json")
@POST("generations")
suspend fun createPrompt(@Body requestPrompt: RequestPrompt): Response<ResponsePrompt>
@Headers("Accept: application/json")
@GET("generations/{id}")
suspend fun getPrompt(@Path("id") id: String): Response<ReponseImagine>
}
class Repository {
suspend fun createPrompt(requestPrompt: RequestPrompt):Response<ResponsePrompt>{
return RetrofitClient.APIService.createPrompt(requestPrompt)
}
suspend fun getPrompt(id:String):Response<ReponseImagine>{
return RetrofitClient.APIService .getPrompt(id)
}
}
class ViewModel(private val Respository: Repository) : ViewModel() {
fun createPrompt() {
viewModelScope.launch(Dispatchers.IO + exceptionHandler) {
//pot
val requestValue = leoRespository.createPrompt( //post
requestPrompt = RequestPrompt(
height = 512,
modelId = "6bef9f1b-29cb-40c7-b9df-32b51c1f67d3",
prompt = "a dog",
width = 512
)
)
val generateId = requestValue.body()!!.sdGenerationJob.generationId
Log.d("Request Prompt", "generation id: $generateId")
//get
val responseValue = Respository.getPrompt(generateId)
val urlImage =
responseValue.body()!!.generations_by_pk.generatedImages[0].url.toString()
Log.d("Url Image", "urlImage : $urlImage")
UrlResponse.postValue(urlImage)
}
}}
// class Fragment:
viewModel.createPrompt()