我想将一个Android-Kotlin项目转换为React Native,但遇到了一个问题:
Kotlin项目处理从API获取数据的方式如下:
import java.net.URL
import java.nio.ByteBuffer
import java.nio.ByteOrder
fun getData() {
val bytes = try {
URL(address).readBytes()
} catch (e: Exception) {
return emptySet()
}
val arrayBuffer = ByteBuffer
.wrap(bytes)
.order(ByteOrder.BIG_ENDIAN)
}
return arrayBuffer
}
fun URL.readBytes(settings: HeaderSetter? = null): ByteArray {
val request = Request.Builder()
.url(this).let {
settings?.invoke(it) ?: it
}.build()
return client.newCall(request).execute().also { if (it.code() != 200) throw IOException("CODE ${it.code()}") }.body()?.use { it.bytes() } ?: throw IOException()
}
var clientHolder: OkHttpClient? = null
val client: OkHttpClient
get() = clientHolder ?: clientBuilder.build().also {
clientHolder = it
}
我在反动派里是怎么做的?
1条答案
按热度按时间xmd2e60i1#
对于来自搜索引擎并希望获得标题中所写问题的答案的用户,从获取响应读取字节的方法是使用Response.arrayBuffer或Response.blob。
更多信息请访问:https://developer.mozilla.org/en-US/docs/Web/API/Response
使用数组缓冲区的一些提示:
new Uint8Array(array)
new TextDecoder("iso-8859-1")
)将其解码为iso-8859 - 1