获得403时如何获得响应体.Java

eki*_*nov 1 java android exception httpurlconnection

我向我的网络应用程序发出请求,网络应用程序报告了一些错误.没什么复杂的 像这样:

{"password":["can't be blank"]}
Run Code Online (Sandbox Code Playgroud)

它返回代码403.

在我的Android应用程序中,我HttpURLConnection用来发出请求,我抓住了一个异常白色试图getInputStream.

在那个例外我可以getResponseMessage(),但我得到的只是'禁止'

如何获得实际的响应体?

HttpURLConnection urlConnection = (HttpURLConnection)new URL(url).openConnection();
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0");
try {
    String result = IOUtils.toString(urlConnection.getInputStream());
    urlConnection.disconnect();
    App.SaveToken(result);
}catch(IOException exception){
    if (urlConnection.getResponseCode()==403)
    {
        return urlConnection.getResponseMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

Bid*_*han 5

如果响应代码不是200(或2xx),请使用getErrorStream()而不是getInputStream().