Получение java.io.IOException: сервер вернул код ответа HTTP: 403 для URL ... Но через браузер он работает нормально? - PullRequest
1 голос
/ 29 февраля 2012

У меня есть два веб-приложения, размещенных на двух разных экземплярах tomcat, скажем, T1 и T2. Я делаю ниже метод в классе Java на T1, чтобы получить объект Java, названный как пользователь из T2

private Properties checkContentChanges() {

Properties reply = null;
try {
    String urlStr = "http://myApp:8080/wiki/bin/view/?checkContent=true&Name=dummy;"
  URL url;
  reply = new Properties();
  try {
    url = new URL(urlStr);
//sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) url
        .openConnection();//line 1
      URLConnection conn =  url
        .openConnection();// line 2
    InputStream is = conn.getInputStream();// line3 
    reply.load(conn.getInputStream());
  }
  catch (MalformedURLException e) {
    e.printStackTrace();
  }
  catch (IOException e) {
    e.printStackTrace();//line 5
  }

}

Но в строке 3 я получаю сообщение об ошибке java.io.IOException: сервер вернул код ответа HTTP: 403 для URL: http://myApp:8080/wiki/... Хотя вызов переходит к методу в T2 и возвращает ожидаемый объект пользователя. Но как только он вернется, я получу выше исключения в строке 5. Я тоже попробовал строку 1 вместо строки 2, но то же исключение?

EDIT: - Хотя через браузер тот же URL-адрес работает нормально

Согласно другому предложению, сынок нет, я тоже попробовал приведенный ниже код, но та же ошибка

  conn.addRequestProperty("User-Agent",
        "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)");
...