Я вызывал веб-сервис с использованием Retrofit2, но onResponse не вызывается и вызывается onFailure. Несмотря на то, что служба успешно работает на стороне сервера
И всякий раз, когда я пытался использовать fiddler, чтобы проверить, работает ли сервисЯ обнаружил, что проблема заключается в том, что при сериализации поступающего ответа службы, и при использовании fiddler, я обнаружил, что нет содержимого в ответе JSON, поэтому служба Retrofit предположила, что это не удалось, потому что нет содержимого, и она не может сериализовать содержимое EMPTY и дать мнеэта ошибка
Запрос
{
"mode":"JainSanghViewMember",
"reg_par_id":"11" }
Ответ
{
"Status": 1,
"userDetails":[
{
"reg_fm_id": 27,
"reg_fm_name": "Hitesh Bhatiya",
"reg_fm_mobileno": "9913990087",
"reg_fm_email": "hitesh.vnurture@gmail.com",
"reg_fm_profilepic": "",
"relationship_name": "Self"
},
{
"reg_fm_id": 64,
"reg_fm_name": "Jayesh Pansheriya ",
"reg_fm_mobileno": "8905982801",
"reg_fm_email": "jayesh.vnurture@gmail.com",
"reg_fm_profilepic": "",
"relationship_name": "Brother"
}
],
"Message": "Family member details listed successfully"
}
Мой код
interface APIInterface {
@FormUrlEncoded
@POST("webservice.php")
fun viewUser(@Field("mode") mode: String,@Field("reg_par_id") reg_par_id:String): Call<UserList>
}
object RetrofitClient {
var retrofit: Retrofit? = null
fun getClient(baseUrl: String): Retrofit? {
if (retrofit == null) {
retrofit = Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
}
return retrofit
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
apiInterface = RetrofitClient.getClient(BASE_URL)!!.create(APIInterface::class.java)
var hero: Call<UserList> = apiInterface!!.viewUser("JainSanghViewMember","11")
hero.enqueue(object : Callback<UserList> {
override fun onFailure(call: Call<UserList>?, t: Throwable?) {
var t=Toast.makeText(this@MainActivity,"h"+t.toString(),Toast.LENGTH_LONG).show()
Log.i("jjjj",t.toString())
}
override fun onResponse(call: Call<UserList>?, response: Response<UserList>?) {
Log.d("hello", response!!.body().Status.toString())
var t=Toast.makeText(this@MainActivity,"h"+response!!.body().Status.toString(),Toast.LENGTH_LONG).show()
}
})
Мой класс модели:
data class UserList(
val Message: String,
val Status: Int,
val userDetails: List<UserDetail>
)
data class UserDetail(
val reg_fm_email: String,
val reg_fm_id: Int,
val reg_fm_mobileno: String,
val reg_fm_name: String,
val reg_fm_profilepic: String,
val relationship_name: String
)
Пожалуйста, поделитесь своей идеей, чтобы решить эту проблему / ошибка спасибо