Как указать User-Agent?

202
18 июля 2017, 18:26

Здравствуйте. Имеется код:

int size = sWebList.size();
for(int i=0;i<(size);i++){
    int j = sWebList.size();
    if (j!=0){
        String sURL = sWebList.get(0);
        System.out.println("----------------------------"+sURL+"-------------------------------------");
        sWebList.remove(0);
        try{
            URL url = new URL("http://www."+sURL+"/robots.txt");
            try{
                LineNumberReader reader = new LineNumberReader(new InputStreamReader(url.openStream()));
                String string = reader.readLine();
                while(string!=null){
                    sRobots.add(string);
                    string = reader.readLine();
                }
                reader.close();
            }catch(IOException e){
                e.printStackTrace();
            }
            for (String line : sRobots) {
                System.out.println(line);
            }
            sRobots.clear();
        }catch (MalformedURLException ex){
            ex.printStackTrace();
        }                
    }
}

Циклом из sWebList берётся имя сайта, читается и выводится robots.txt. Некоторые сайты, если не обнаруживают User-Agent, выбрасывают Exception. Как в данный код добавить setRequestProperty("User-Agent", "Mozilla/5.0");?

Можно и так сделать:

URLConnection uc;
StringBuilder parserContentFromUrl = new StringBuilder();
String urlString = "http://www."+sURL+"/robots.txt";
try{
    url = new URL(urlString);
    uc = url.openConnection();
    uc.addRequestProperty("User-Agent","Mozilla/5.0");
    uc.connect();
    uc.getInputStream();
    BufferedInputStream in = new BufferedInputStream(uc.getInputStream());
    int ch;
    while((ch = in.read()) != -1){
        parserContentFromUrl.append((char) ch);
    }
    System.out.println(parserContentFromUrl);
} catch (Exception ex){
    ex.printStackTrace();
}

Но мне нужно, чтобы в дальнейшем в sRobots были строки, тогда как во втором варианте побайтово получается. Помогите разобраться.

READ ALSO
Получение значения из компонента JSF

Получение значения из компонента JSF

Как передать значение из одного компонента в другой?

199
Facebook messenger проблема с получением Postback

Facebook messenger проблема с получением Postback

Пишу чат бот для Facebook и столкнулся с проблемой при получении payload с нажатой кнопки юзером

181
Построить пирамиду из символов

Построить пирамиду из символов

Написал метод, который строить пирамиду из символов "^"Саму пирамиду рисует правильно, только вот есть лишний пробел и переход на новую строку,...

726
проблемы с конфигурацией логгера, java

проблемы с конфигурацией логгера, java

У меня есть файл конфига для логгера log4jxml, но когда я пытаюсь его подключить для инициализации логгера, почему то он его ищет не в папке проекта...

229