我的目标是在JS实际的多平台项目类中实现Http请求调用。
http请求应返回二进制数据
我的Response普通类看起来很简单
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)中应该是ArrayByte
我试了一段时间谷歌搜索。不幸的是,我没有找到任何解决方案。
任何人都可以帮助我应对转换类型问题
提前致谢
如果我理解你的问题是正确的,正确的解决方案可能是从Int8Array
建立ArrayBuffer
并将其投射到像这样的ByteArray
Int8Array(it).unsafeCast<ByteArray>()