我试图使用HttpGet调用REST端点并传递用户凭据。
var content = ""
val httpClient : CloseableHttpClient = HttpClients.createDefault();
val httpResponse = new HttpGet(url)
httpResponse.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials(“uname”,”pwd”),”UTF-8", false))
val response = httpClient.execute(httpResponse)
val entity = httpResponse.getEntity()
val inputStream = entity.getContent()
content = fromInputStream(inputStream).getLines.mkString
inputStream.close
httpClient.getConnectionManager().shutdown()
return content看起来BasicScheme在"org.apache.http.impl.auth“中不受欢迎。任何关于如何前进的建议..。提前谢谢。
发布于 2019-03-27 19:10:34
如果您正在尝试使用基本身份验证,这应该就足够了
val credentialsProvider = new BasicCredentialsProvider()
credentialsProvider.setCredentials(
AuthScope.ANY,
new UsernamePasswordCredentials("username", "password")
)
val httpClient =
HttpClientBuilder.create()
.setDefaultCredentialsProvider(credentialsProvider)
.build()
val httpResponse = new HttpGet(url)
httpClient.execute(httpResponse)如果您更喜欢使用简单的HTTP头,则可以使用
def buildEncodedCredentials(): String = {
val credentialsString = username + ":" + password
val charset = StandardCharsets.ISO_8859_1
val encodedBytes = Base64.getEncoder().encode(credentialsString.getBytes(charset))
return new String(encodedBytes, charset)
} httpResponse.addHeader(HttpHeaders.AUTHORIZATION, "Basic " + buildEncodedCredentials())https://stackoverflow.com/questions/55384442
复制相似问题