Refine handling errorStream

This commit is contained in:
Mygod
2023-05-25 16:53:24 -04:00
parent fda2b071cc
commit 5b3468a5b5

View File

@@ -18,6 +18,7 @@ import org.json.JSONException
import org.json.JSONObject import org.json.JSONObject
import timber.log.Timber import timber.log.Timber
import java.io.IOException import java.io.IOException
import java.net.HttpURLConnection
/** /**
* This class generates a default nickname for new clients. * This class generates a default nickname for new clients.
@@ -36,6 +37,8 @@ object MacLookup {
// http://en.wikipedia.org/wiki/ISO_3166-1 // http://en.wikipedia.org/wiki/ISO_3166-1
private val countryCodeRegex = "(?:^|[^A-Z])([A-Z]{2})[\\s\\d]*$".toRegex() private val countryCodeRegex = "(?:^|[^A-Z])([A-Z]{2})[\\s\\d]*$".toRegex()
private val HttpURLConnection.findErrorStream get() = errorStream ?: inputStream
@MainThread @MainThread
fun abort(mac: MacAddress) = macLookupBusy.remove(mac)?.cancel() fun abort(mac: MacAddress) = macLookupBusy.remove(mac)?.cancel()
@@ -52,9 +55,9 @@ object MacLookup {
when (val responseCode = conn.responseCode) { when (val responseCode = conn.responseCode) {
200 -> conn.inputStream.bufferedReader().readText() 200 -> conn.inputStream.bufferedReader().readText()
400, 401, 402, 404, 422, 429, 500 -> throw UnexpectedError(mac, 400, 401, 402, 404, 422, 429, 500 -> throw UnexpectedError(mac,
conn.inputStream.bufferedReader().readText()) conn.findErrorStream.bufferedReader().readText())
else -> throw UnexpectedError(mac, "Unhandled response code $responseCode: " + else -> throw UnexpectedError(mac, "Unhandled response code $responseCode: " +
conn.inputStream.bufferedReader().readText()) conn.findErrorStream.bufferedReader().readText())
} }
} }
val reportId = JSONObject(response).getString("report_id") val reportId = JSONObject(response).getString("report_id")
@@ -63,7 +66,7 @@ object MacLookup {
when (val responseCode = conn.responseCode) { when (val responseCode = conn.responseCode) {
200 -> conn.inputStream.bufferedReader().readText() 200 -> conn.inputStream.bufferedReader().readText()
else -> throw UnexpectedError(mac, "Unhandled response code $responseCode: " + else -> throw UnexpectedError(mac, "Unhandled response code $responseCode: " +
conn.inputStream.bufferedReader().readText()) conn.findErrorStream.bufferedReader().readText())
} }
} }
val obj = JSONObject(response).getJSONObject("pageProps").getJSONObject("lookupResults") val obj = JSONObject(response).getJSONObject("pageProps").getJSONObject("lookupResults")