2013-06-18 4 views
0

У меня есть серверное приложение, которое отвечает на запросы HTTP GET с ответом XML. У меня возникли проблемы с созданием небольшого приложения Java для получения содержимого этого ответа. Каждый вид чтения я пытаюсь ответить, или getContent(), или whathaveyou ничего не возвращает.Получение содержимого URL-адреса

я впервые попробовал примеры, перечисленные здесь: how to get url html contents to string in java

Но те, метод используют устаревшие ReadLine() из InputStream. В приведенных выше случаях read()/available(), похоже, всегда указывают, что читать нечего (они возвращают -1 и 0 соответственно), но дают код ответа 200.

Любой другой URL (http://www.google.com/humans.txt, например) работает нормально.

Итак, я нашел более соответствующую ссылку здесь: How to read XML response from a URL in java?

Который дал мне:

String urlString = new String("http://homeserver/ampache/server/xml.server.php?action=handshake&auth=" + hash + "&timestamp=" + timestamp + "&version=3600013&user=" + user"); 
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
Document doc = db.parse(new URL(urlString).openStream()); 
System.out.println(doc.toString()); 

Но, похоже, у меня та же проблема:

[Fatal Error] :1:1: Premature end of file. 
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file. 

Тогда я попробовал HTTPClient Apache, который также возвращал zilch в теле, но с кодом ответа 200.

URL-адрес моей установки Ampache. Это их XML API: http://homeserver/ampache/server/xml.server.php?action=handshake&auth.... Этот URL работает отлично от браузера, и возвращает то, что я ожидал в этот момент:

<?xml version="1.0" encoding="UTF-8" ?> 
<root> 
    <error code="403"><![CDATA[Unauthorized access attempt to API - ACL Error]]> 
</error> 
</root> 
+0

Не могли бы вы предоставить кому-то код? Без кода трудно сказать, что вы делаете неправильно. –

+0

@UwePlonus, Добавлено. – Nick

ответ

1

Похоже, что URL Ampache был уродлив, или есть ошибка в API Ampache в. Запрос отлично работает для http://homeserver/ampache/server/xml.server.php?action=handshake, но не полный URL с данными аутентификации.

Смежные вопросы