安卓Kotlin 用GET方法下载数据到ByteArray

运行下面的函数即可,传入url,返回String

@ExperimentalStdlibApi
fun getHttpContent(Url:String, refer: String? = null):ByteArray?{
    Log.d("Mydl", "getHttp: $Url")
    var ret:ByteArray? = null
    val task = FutureTask(Callable {
        try {
            val connection = URL(Url).openConnection() as HttpURLConnection
            connection.requestMethod = "GET"
            connection.connectTimeout = 8000
            connection.readTimeout = 8000
            refer?.let { connection.setRequestProperty("referer", it) }
            ret = connection.inputStream.readBytes().decodeToString()
            connection.disconnect()
        } catch (ex: Exception) {
            ex.printStackTrace()
        }
        return@Callable ret
    })
    Thread(task).start()
    return try {
        task.get()
    } catch (ex : Exception){
        ex.printStackTrace()
        null
    }
}

你可能感兴趣的:(安卓,kotlin)