gpt4 book ai didi

android 基本认证 okhttpclient

转载 作者:行者123 更新时间:2023-11-28 22:01:50 29 4
gpt4 key购买 nike

我正在使用改造和 okHttp 客户端连接到我的 rest api。当我在 Tomcat 上禁用基本身份验证时,一切正常。在 Tomcat 上启用 Basic Auth 后,我收到 404 Page not found。这是我的身份验证和错误输出。

    okHttpClient.setAuthenticator(new Authenticator() {
@Override
public Request authenticate(Proxy proxy, Response response) throws IOException {
String credential = Credentials.basic(rest_user, rest_pw);
return response.request().newBuilder().header("Authorization", credential).build();
}

@Override
public Request authenticateProxy(Proxy proxy, Response response) throws IOException {
return null;
}
});

错误日志

    D/YOUR_LOG_TAG: <--- HTTP 404 https://myserver:8443/RestWS/objects/barcodes (4462ms)
D/YOUR_LOG_TAG: Server: Apache-Coyote/1.1
D/YOUR_LOG_TAG: Cache-Control: private
D/YOUR_LOG_TAG: Expires: Thu, 01 Jan 1970 01:00:00 CET
D/YOUR_LOG_TAG: Set-Cookie: JSESSIONID=*********************; Path=/; Secure; HttpOnly
D/YOUR_LOG_TAG: Content-Type: text/html;charset=ISO-8859-1
D/YOUR_LOG_TAG: Content-Length: 127
D/YOUR_LOG_TAG: Date: Tue, 26 Apr 2016 09:31:22 GMT
D/YOUR_LOG_TAG: OkHttp-Selected-Protocol: http/1.1
D/YOUR_LOG_TAG: OkHttp-Sent-Millis: 1461663081883
D/YOUR_LOG_TAG: OkHttp-Received-Millis: 1461663081973
D/YOUR_LOG_TAG: <html>
D/YOUR_LOG_TAG: <head>
D/YOUR_LOG_TAG: <title>404-Page Not Found</title>
D/YOUR_LOG_TAG: </head>
D/YOUR_LOG_TAG: <body> The requested URL was not found on this server. </body>
D/YOUR_LOG_TAG: </html>
D/YOUR_LOG_TAG: <--- END HTTP (127-byte body)

最佳答案

使用 RequestInterceptor 解决了问题。

  restAdapter = new RestAdapter.Builder()
.setConverter(new GsonConverter(gson))
.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
String credentials = DownloadService.rest_user + ":" + DownloadService.rest_pw;
String base64EncodedCredentials = Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP);
request.addHeader("Authorization", "Basic " + base64EncodedCredentials);
}
})
.setEndpoint(DownloadService.URL)
.setClient(new OkClient(okHttpClient))
.build();

关于android 基本认证 okhttpclient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36860984/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com