获取 http 407 错误作为 IOException

gra*_*u03 5 java android httpurlconnection

我在我的 android 应用程序中使用HttpURLConnection需要身份验证的代理。这是我的代码,我会在出现问题后向您解释。

HttpURLConnection connection = null;
int responseCode = -1;
try {
    connection = (HttpURLConnection) myUrl.openConnection();
    connection.setInstanceFollowRedirects(false);
    connection.setConnectTimeout(DEFAULT_TIMEOUT);
    connection.setReadTimeout(DEFAULT_TIMEOUT);

    responseCode = connection.getResponseCode();
    System.out.println("ResponseCode = " + responseCode);
} catch (IOException e) {
    System.out.println("Exception : " + e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我在 getResponseCode() 方法上遇到异常,其中包含以下消息:Failed to authenticate with proxy。通常,这个特定错误有一个http错误代码:407。但在这里我只是得到一个异常,但没有407值的响应代码。

我有应用登录名和密码来连接到代理的解决方案,但我只想在出现 407 错误的情况下应用此解决方案(而不是每次捕获异常时)。

任何想法将不胜感激。谢谢。

Ton*_*nio -1

尝试捕获HttpResponseException,并检查其状态代码 ( .getStatusCode()) 以查看是否为 407 (或者更好的是,HttpURLConnection.HTTP_PROXY_AUTH更易读)。

HttpResponseException是 的子类IOException,我认为这就是抛出的实际异常。

http://developer.android.com/reference/org/apache/http/client/HttpResponseException.html了解更多信息。)