fix FileNotFoundException when response code is 4xx or 5xx

master
stevenzack 4 years ago committed by Kevin Wan
parent b65fcc5512
commit 701208b6f4

@ -36,7 +36,10 @@ suspend fun apiRequest(
val url = URL(SERVER + uri)
with(url.openConnection() as HttpURLConnection) {
requestMethod = method
headerFields["Content-Type"] = listOf("Application/json")
doInput = true
if (method == "POST" || method == "PUT") {
setRequestProperty("Content-Type", "application/json")
doOutput = true
val data = when (body) {
is String -> {
body
@ -48,15 +51,18 @@ suspend fun apiRequest(
val wr = OutputStreamWriter(outputStream)
wr.write(data)
wr.flush()
}
if (responseCode >= 400) {
BufferedReader(InputStreamReader(errorStream)).use {
val response = it.readText()
onFail?.invoke(response)
}
return@with
}
//response
BufferedReader(InputStreamReader(inputStream)).use {
val response = it.readText()
if (responseCode == 200) {
onOk?.invoke(response)
} else {
onFail?.invoke(response)
}
}
}
eventually?.invoke()

Loading…
Cancel
Save