, поэтому я использую следующий код для получения HTML-кода определенного URL:
import java.io.*;
import java.net.*;
public class SourceViewer {
public static void main (String[] args) throws IOException{
System.out.print("Enter url of local for viewing html source code: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String url = br.readLine();
try{
URL u = new URL(url);
HttpURLConnection uc = (HttpURLConnection) u.openConnection();
int code = uc.getResponseCode();
String response = uc.getResponseMessage();
System.out.println("HTTP/1.x " + code + " " + response);
for(int j = 1; ; j++){
String header = uc.getHeaderField(j);
String key = uc.getHeaderFieldKey(j);
if(header == null || key == null)
break;
System.out.println(uc.getHeaderFieldKey(j) + ": " + header);
}
InputStream in = new BufferedInputStream(uc.getInputStream());
Reader r = new InputStreamReader(in);
int c;
while((c = r.read()) != -1){
System.out.print((char)c);
}
}
catch(MalformedURLException ex){
System.err.println(url + " is not a valid URL.");
}
catch(IOException ie){
System.out.println("Input/Output Error: " + ie.getMessage());
}
}
}
Этот код работает с Википедией и другими сайтами, но для моего URL это не так. Например:
ВХОД:
Введите локальный URL для просмотра исходного кода html: http://ntu -edu-sg.campuspack.eu / Groups / SC207-SOFTWARE_ENGINEERING / WikiCPE207_Template_0 / Week_11_Software_Testing
ВЫВОД:
HTTP / 1.x 403 Запрещено
Set-Cookie: ARPT = LWYYVUShyp1CKIQY; Путь = /
X-Powered-By: Servlet / 2,5
Сервер: Sun GlassFish Enterprise Server v2.1
Набор-Cookie: UGROUTE = 4c5e7101a68101c06a712650c7352d98; Path = /
P3P: CP = "ALL DSP COR CUR ADMa DEVA TAIa PSAa PSDa IVAa IVDa НАШ АВТОБУС UNI COM NAV INT CNT STA
PRE»
Set-Cookie: UG = zc2qAfg {; Path = /
Cache-Control: не хранить, не кэшировать, обязательно повторная проверка
Прагма: без кеша
Истекает: 0
X-Powered-By: JSF / 1.2
X-Powered-By: JSF / 1.2
Тип содержимого: text / html; charset = UTF-8
Контент-язык: en-US
Передача-кодировка: чанки
Дата: вторник, 22 февраля 2011 г. 16:09:48 по Гринвичу
Ошибка ввода / вывода: сервер возвратил код ответа HTTP: 403 для URL: http://ntu -edu-sg.campuspack.eu / Groups / SC207-SOFTWARE_ENGINEERING / WikiCPE207_Template_0 / Week_11_Software_Testing
Код ответа 403 указывает, что сервер отказывает мне в разрешении на очистку. У меня есть данные для аутентификации, необходимые для входа в систему, и, если я пытаюсь получить доступ к URL-адресу из браузера, появляется окно с просьбой перенаправить на родительский сайт. Мне было интересно, есть ли какой-нибудь способ сделать это окно всплывающим из моего кода.
Чтобы обойти проблему аутентификации, я попытался войти в систему из браузера, а затем запустить код, пока я все еще входил в систему. Однако при выполнении кода я получаю тот же вывод. Это сбивает меня с толку, так как копирование-вставка URL-адреса в другую вкладку браузера после входа в систему не запрашивает детали аутентификации, а просто отображает данные, подразумевая, что у меня уже есть разрешения. Может кто-нибудь, пожалуйста, посоветуйте мне, как очистить URL?