Java IO Exception для DOMParser
Я пытаюсь проанализировать 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 ответа
Он пытается загрузить testng-1.0.dtd
DTD для вашего XML-документа.
Загрузите его сами, откуда вы можете его получить, и настройте DocumentBuilder
искать там, предоставляя EntityResolver
в DocumentBuilder.setEntityResolver()
,
Или исправьте свой HTTP прокси. Сам документ не защищен авторизацией, что означает 403.
Вы пытаетесь получить доступ к некоторому 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");
Пожалуйста, обратитесь к этому для более подробной информации.