Я хотел бы сохранить код ответа от вызовов залпа в БД, но похоже, что parseNetworkResponse () не вызывается. Любая идея, почему он ведет себя так?
Все мои вызовы - это GET, некоторые имеют код 500, а некоторые имеют код 200 с ответом json, поэтому я думаю, что он должен быть вызван.
private fun createCall(url: String, type: Int, data: JSONObject, callback: Int, request: DbRequestEntity) {
val jsonRequest = object : JsonObjectRequest(type, url, data,
Response.Listener { response ->
Log.d(tag, "Response $response")
try {
callback(response, data, callback, request)
} catch (e: Exception) {
request.responseCode = 999
request.responseMessage = e.message
db.requestMoodel().update(request)
Log.d(tag, "API callback error $e ${e.localizedMessage} ${e.stackTrace}")
}
},
Response.ErrorListener { error ->
Log.d(tag, "API error $error")
errorCallback(error, callback)
}
) {
val tag = "JsonObjectRequest"
override fun getHeaders(): Map<String, String> {
val headers = HashMap<String, String>()
headers[ConstantsStorage.API_HEADER_CLIENT_ID] = ConstantsStorage.API_HEADER_CLIENT_ID_VALUE
headers[ConstantsStorage.API_HEADER_CLIENT_CONTENT_TYPE] = ConstantsStorage.API_HEADER_CLIENT_CONTENT_TYPE_VALUE
return headers
}
override fun parseNetworkResponse(response: NetworkResponse): Response<JSONObject> {
Log.d(tag, "Response code = ${response.statusCode}") //not getting this message to Logcat
return super.parseNetworkResponse(response)
}
}
queue.add(jsonRequest)
}