2017-01-24 15 views
0

私のアプリケーションでは、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(); 
+0

私はurlConnection.getInputStream()のために例外が発生していると思います。 –

+0

urlConnection.getResponseCode()が401または404の場合は、urlConnection.getErrorStream()を使用する必要があります。 –

答えて

2

このコードを試してみてください。

urlConnection.connect(); 
InputStream inputStream = null; 
if(urlConnection.getResponseCode() == 200) { 
    inputStream = urlConnection.getInputStream(); 
}else 
{ 
    inputStream = urlConnection.getErrorStream() 
} 
+0

これは私のために働いた、ありがとう。 – pcj

関連する問題