我是 kotlin 初学者。
我尝试连接到我的 http 服务,这需要身份验证。
有错误:
未解决的参考:身份验证器
如何设置验证器?
var url = URL ("https://myURL")
val authenticator = object : Authenticator() {
val passwordAuthentication: PasswordAuthentication?
get() = PasswordAuthentication(
"user",
"password".toCharArray()
)
}
确保您已在 Kotlin 文件顶部导入
Authenticator
。我认为这是您尝试使用的 java.net.Authenticator,在这种情况下请确保您的 Kotlin 文件如下所示:
import java.net.Authenticator
val authenticator = object : Authenticator() {
val passwordAuthentication: PasswordAuthentication
get() = PasswordAuthentication(
"user",
"password".toCharArray()
)
}
可能为时已晚,但您可以使用 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)
}