I'm trying to resolve the malformed JSON issue while dealing with the JSON object. It dumps the error on my project's console stating that Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
. How can I fix this?
Send Remote Message
private fun sendRemoteMessage(body: sender) {
val retrofit = Retrofit.Builder()
.baseUrl("http://fcm.googleapis.cm/fcm/")
.addConverterFactory(GsonConverterFactory.create())
.build()
retrofit.create(ApiService::class.java).sendRemoteMessage(body).enqueue( object :Callback<String> {
override fun onFailure(call: Call<String>, t: Throwable) {
Toast.makeText(applicationContext, t.message, Toast.LENGTH_LONG).show()
}
override fun onResponse(call: Call<String>, response: Response<String>) {
if (response.code() == 200 && response.isSuccessful){
Toast.makeText(applicationContext, "Message sent",Toast.LENGTH_LONG).show()
}
else {
Toast.makeText(applicationContext, response.message(), Toast.LENGTH_LONG).show()
}
}
})
}
API Service
@Headers({
"Content-Type:application/json",
"Authorization:key=myServerKey"
})
@POST("send")
Call<String> sendRemoteMessage(@Body sender body);
Handling Data
private fun initiateMeeting(meetingType: String, receiverToken: String) {
val data = user()
data.name = preferenceManager.getString(Constants().keyUserName).toString()
data.profilePic = preferenceManager.getString((Constants().keyProfile)).toString()
data.email = preferenceManager.getString(Constants().keyEmail).toString()
data.token = preferenceManager.getString(Constants().keyRemoteMsgSenderToken).toString()
val sender = sender(data, receiverToken)
sendRemoteMessage(sender)
Toast.makeText(applicationContext, sender.data.toString(), Toast.LENGTH_LONG).show()
}
Data Sender
class sender(var data: data, var to: String)
Data Class
class user: Serializable {
var name = ""
var profilePic = ""
var token: String = ""
var email = ""
}