У меня есть следующий код, который является довольно стандартным для извлечения XML-документа из Интернета в Android (насколько я понимаю):
URL rssUrl = new URL("web_1.whatever.com");
SAXParserFactory mySAXParserFactory = SAXParserFactory.newInstance();
SAXParser mySAXParser = mySAXParserFactory.newSAXParser();
XMLReader myXMLReader = mySAXParser.getXMLReader();
RSSHandler myRSSHandler = new RSSHandler();
myXMLReader.setContentHandler(myRSSHandler);
myXMLReader.parse(new InputSource(rssUrl.openStream()));
Это прекрасно работает для большинства ситуаций.Проблема возникает, когда я пытаюсь получить XML-документ с веб-адреса с подчеркиванием "_" в поддомене, например: web_1.whever.com.openStream (), очевидно, не работает с URL-адресами, которые имеют подчеркивание в них.Я за всю свою жизнь не нашел никакой документации по этому вопросу и хотел бы найти способ обойти это, чтобы он работал для URL с подчеркиванием.Введенный URL-адрес поступает от пользователя, который размещает файл XML, и заставляет их размещать файл XML в другом домене, и я не хочу, чтобы он делал это.Я перепробовал все, что мог придумать, поэтому любая помощь была бы безмерно признательна.
Я получаю ошибку ниже.
03-27 03: 44: 54.274: WARN / System.err (1051): java.io.IOException: недопустимый символ в имени хоста с индексом 0: web_1.whwhat.com
03-27 03: 44: 54.274: WARN / System.err (1051): по адресу org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect (HttpURLConnectionImpl.java:874)
03-27 03: 44: 54.274: WARN / System.err (1051): по адресу org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream (HttpURLConnectionImpl.java): 1152)
03-27 03: 44: 54.274: WARN / System.err (1051): at java.net.URL.openStream (URL.java:653)
Есть идеи?Или есть ли место, где я мог бы взглянуть на код openStream?
Спасибо.