HttpURLConnection 将响应作为 FileNotFoundException (404) 而不是 401 返回

pcj*_*pcj 1 java spring android http

我的应用程序用于java.net.HttpURLConnection获取文件输入流。服务器使用的是java的spring boot框架。当身份验证令牌过期时,spring boot 过滤器会抛出 SecurityException,我们将响应代码设置为 401,如下所示(Spring boot 服务器端):

catch (ExpiredJwtException eje) {
            ((HttpServletResponse) servletResponse).setStatus(HttpServletResponse.UNAUTHORIZED);
        }
Run Code Online (Sandbox Code Playgroud)

但是在 android 端,我们收到了异常 FileNotFoundException,它表示 404 和响应代码为 -1。为什么我无法获得响应代码 401 ?

以下代码我用来检查响应代码(Android 端):

urlConnection.connect();

                if(urlConnection.getResponseCode() == HttpURLConnection.HTTP_UNAUTHORIZED) {

                }

                InputStream inputStream = urlConnection.getInputStream();
Run Code Online (Sandbox Code Playgroud)

Rah*_*kar 6

试试这个代码。

urlConnection.connect();
InputStream inputStream = null;
if(urlConnection.getResponseCode() == 200) {
    inputStream = urlConnection.getInputStream();
}else
{
    inputStream =  urlConnection.getErrorStream()
}
Run Code Online (Sandbox Code Playgroud)