Java IO Exception для DOMParser - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь проанализировать XML-файл в Java с помощью анализатора DOM со следующим кодом:

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

[...]

File file = new File("some/path");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);

И последняя строка (при вызове функции .parse ()) выдает ошибку:

java.io.IOException: Server returned HTTP response code: 403 for URL: http://testng.org/testng-1.0.dtd

Как мне исправить эту ошибку?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Он пытается загрузить testng-1.0.dtd, DTD для вашего XML-документа.

Загрузите его сами, откуда вы можете его получить, и настройте DocumentBuilder для его поиска, предоставив EntityResolver до DocumentBuilder.setEntityResolver().

Или исправьте HTTP-прокси.Сам документ не защищен авторизацией, что означает 403.

0 голосов
/ 31 мая 2018

Вы пытаетесь получить доступ к некоторому URL в вашем коде.Код состояния HTTP 403 означает, что доступ запрещен, обычно это происходит, если не установлен заголовок пользовательского агента.Вы можете установить его следующим образом:

URLConnection connection = new URL("https://www.google.com/search?q=" + query).openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");

Пожалуйста, обратитесь к это для более подробной информации.

...