1
retrofitとokHttpクライアントを使用して、残りのAPIに接続しています。 Tomcatで基本認証を無効にすると、すべてがうまく動作します。 Tomcatで基本認証を有効にすると、404ページが見つかりません。 ここに私の認証とエラー出力があります。アンドロイド基本認証okhttpclient
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)
これは、探しているページがサーバー側で見つからないことを示しています。バックエンドをチェックする必要があります。 – GrIsHu
私は正当な理由を否定すると問題なく開いています。認証が有効になっているとアンドロイドからブラウザからこのページにアクセスできません – user2925656
アクセスを取得するには何らかの認証が必要であるため、アンドロイドでアクセスする前に常に認証する必要があります。ヘッダーに認証資格情報を渡す必要があります。 – GrIsHu