连接到 URL 需要在 Kotlin 中进行身份验证

问题描述 投票:0回答:2

我是 kotlin 初学者。
我尝试连接到我的 http 服务,这需要身份验证。

有错误:

未解决的参考:身份验证器

如何设置验证器?

var url = URL ("https://myURL")
val authenticator = object : Authenticator() {
    val passwordAuthentication: PasswordAuthentication?
        get() = PasswordAuthentication(
            "user",
            "password".toCharArray()
        )
}
kotlin https
2个回答
0
投票

确保您已在 Kotlin 文件顶部导入

Authenticator
。我认为这是您尝试使用的 java.net.Authenticator,在这种情况下请确保您的 Kotlin 文件如下所示:

import java.net.Authenticator

val authenticator = object : Authenticator() {
    val passwordAuthentication: PasswordAuthentication
        get() = PasswordAuthentication(
            "user",
            "password".toCharArray()
        )
}

0
投票

可能为时已晚,但您可以使用 Authenticator.setDefault(authenticator) 设置身份验证器,即:

import java.io.File
import java.net.Authenticator
import java.net.PasswordAuthentication
import java.net.URL
...
fun main(args: Array<String>) {
    var url = URL ("https://myURL")
    val username = "user"
    val password = "password"
    val authenticator = object : Authenticator() {
        override fun getPasswordAuthentication(): PasswordAuthentication {
            return PasswordAuthentication(username, password.toCharArray())
        }
    }
    Authenticator.setDefault(authenticator)
    println("Reading url: $url")
    val bytes = url.readBytes()
    println("Writing bytes...")
    File("out.txt").writeBytes(bytes)
}
© www.soinside.com 2019 - 2024. All rights reserved.