forked from recloudstream/cloudstream
added a wrapper for the okhttp Response
This commit is contained in:
parent
15c1316b1f
commit
ea537da831
1 changed files with 60 additions and 3 deletions
|
@ -16,6 +16,63 @@ private val DEFAULT_COOKIES: Map<String, String> = mapOf()
|
||||||
private val DEFAULT_REFERER: String? = null
|
private val DEFAULT_REFERER: String? = null
|
||||||
|
|
||||||
|
|
||||||
|
// lowercase to avoid conflicts
|
||||||
|
class response(response: Response) {
|
||||||
|
companion object {
|
||||||
|
private var responseText: String? = null
|
||||||
|
private var responseBody: ResponseBody? = null
|
||||||
|
}
|
||||||
|
|
||||||
|
public val rawResponse: Response = response
|
||||||
|
|
||||||
|
val text: String
|
||||||
|
get() {
|
||||||
|
if (responseText != null) return responseText!!
|
||||||
|
if (responseBody == null) responseBody = rawResponse.body
|
||||||
|
|
||||||
|
responseText = responseBody.toString()
|
||||||
|
return responseText!!
|
||||||
|
}
|
||||||
|
|
||||||
|
val body: ResponseBody
|
||||||
|
get() {
|
||||||
|
if (responseBody == null) responseBody = rawResponse.body
|
||||||
|
return responseBody!!
|
||||||
|
}
|
||||||
|
|
||||||
|
val url: String
|
||||||
|
get() {
|
||||||
|
return rawResponse.request.url.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
val cookies: Map<String, String>
|
||||||
|
get() {
|
||||||
|
val cookieList =
|
||||||
|
rawResponse.headers.filter { it.first.equals("set-cookie", ignoreCase = true) }.getOrNull(0)?.second?.split(";")
|
||||||
|
return cookieList?.associate {
|
||||||
|
val split = it.split("=")
|
||||||
|
(split.getOrNull(0)?.trim() ?: "") to (split.getOrNull(1)?.trim() ?: "")
|
||||||
|
}?.filter { it.key.isNotBlank() && it.value.isNotBlank() } ?: mapOf()
|
||||||
|
}
|
||||||
|
|
||||||
|
val headers: Headers
|
||||||
|
get() {
|
||||||
|
return rawResponse.headers
|
||||||
|
}
|
||||||
|
|
||||||
|
val ok: Boolean
|
||||||
|
get() {
|
||||||
|
return rawResponse.isSuccessful
|
||||||
|
}
|
||||||
|
|
||||||
|
val status: Int
|
||||||
|
get() {
|
||||||
|
return rawResponse.code
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** WARNING! CAN ONLY BE READ ONCE */
|
/** WARNING! CAN ONLY BE READ ONCE */
|
||||||
val Response.text: String
|
val Response.text: String
|
||||||
get() {
|
get() {
|
||||||
|
@ -98,7 +155,7 @@ fun get(
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
val request = getRequestCreator(url, headers, referer, params, cookies, cacheTime, cacheUnit)
|
val request = getRequestCreator(url, headers, referer, params, cookies, cacheTime, cacheUnit)
|
||||||
return client.newCall(request).execute()
|
return response(client.newCall(request).execute())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,7 +177,7 @@ fun post(
|
||||||
.callTimeout(timeout, TimeUnit.SECONDS)
|
.callTimeout(timeout, TimeUnit.SECONDS)
|
||||||
.build()
|
.build()
|
||||||
val request = postRequestCreator(url, headers, referer, params, cookies, data, cacheTime, cacheUnit)
|
val request = postRequestCreator(url, headers, referer, params, cookies, data, cacheTime, cacheUnit)
|
||||||
return client.newCall(request).execute()
|
return response(client.newCall(request).execute())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -156,4 +213,4 @@ fun postRequestCreator(
|
||||||
.headers(getHeaders(headers, referer, cookies))
|
.headers(getHeaders(headers, referer, cookies))
|
||||||
.post(getData(data))
|
.post(getData(data))
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue