私のアプリケーションでは、java.net.HttpURLConnection
を使用してファイル入力ストリームを取得します。サーバーはJavaのスプリングブートフレームワークを使用しています。HttpURLConnectionは、401の代わりにFileNotFoundException(404)として応答を返します。
catch (ExpiredJwtException eje) {
((HttpServletResponse) servletResponse).setStatus(HttpServletResponse.UNAUTHORIZED);
}
しかし、アンドロイド側では、我々は404 &応答を表す例外にFileNotFoundExceptionを得ている:認証トークンの有効期限が切れている場合は、スプリングブートフィルタは、(春ブートサーバー側)を以下のように、我々は401のように応答コードを設定しているにSecurityException &を投げています-1としてコードします。なぜレスポンスコードを401として取得できないのですか?
次のコードは、私は応答コード(アンドロイド側)を確認するために使用しています:
urlConnection.connect();
if(urlConnection.getResponseCode() == HttpURLConnection.HTTP_UNAUTHORIZED) {
}
InputStream inputStream = urlConnection.getInputStream();
私はurlConnection.getInputStream()のために例外が発生していると思います。 –
urlConnection.getResponseCode()が401または404の場合は、urlConnection.getErrorStream()を使用する必要があります。 –