Kotlin извлекает двоичные данные с помощью API window.fetch - PullRequest
0 голосов
/ 10 февраля 2019

Моя цель - реализовать вызов запроса Http в реальном классе JS многоплатформенного проекта.

Запрос 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 тип, тогда как it в Response (it) должен ArrayByte

Я пробовал поискать в Googleв то время как.К сожалению, я не нашел никакого решения.

Может ли кто-нибудь помочь мне справиться с проблемой преобразования типов

Заранее спасибо

1 Ответ

0 голосов
/ 12 февраля 2019

Если я правильно понимаю вашу проблему, правильное решение может быть построено Int8Array из ArrayBuffer и приведено к ByteArray следующим образом

Int8Array(it).unsafeCast<ByteArray>()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...