我的目标是在多平台项目的JS实际类中实现Http请求调用。
http请求应返回二进制数据
我的响应普通班看起来很简单
class Response(val binaryData: ByteArray) {
var code: Int = 0
var message: String? = null
var headers: Map<String, String>? = null
var body: ByteArray = binaryData
}
数据应以 ByteArray
的形式提供现在提取逻辑看起来像
actual class Call(var request: Request) {
actual fun enqueue(responseCallback: Callback) {
window.fetch(request.url).then(onFulfilled = { response ->
response.arrayBuffer().then(onFulfilled = {
responseCallback.onResponse(this, Response(it))
}, onRejected = { error ->
responseCallback.onFailure(this, Exception(error.message))
})
}
}
response.arrayBuffer()具有 ArrayBuffer 类型,而Response(it)中的 it 应该 ArrayByte < / p>
我尝试了一段时间。不幸的是,我没有找到任何解决方案。
谁能帮我解决转换类型的问题
预先感谢
答案 0 :(得分:1)
如果我理解您的问题正确,则可以从Int8Array
构建ArrayBuffer
并像这样将其投射到ByteArray
上
Int8Array(it).unsafeCast<ByteArray>()