2013-06-18 212 views
0

我有一個服務器應用程序,它響應帶有XML響應的HTTP GET請求。我無法制作一個小型Java應用程序來獲取此響應的內容。每種閱讀我都會嘗試回覆,或者getContent(),或者什麼都不會返回。獲取URL內容

我第一次嘗試在這裏列出的例子: how to get url html contents to string in java

但InputStream的那些使用過時的readLine()方法。在上面的情況下,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. 

然後我嘗試了Apache的HTTPClient,它也在主體中返回了zilch,但有200個響應代碼。

該URL是我的Ampache安裝。這是他們的XML APIhttp://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

它看起來像Ampache URL格式不正確,或存在Ampache的API的錯誤。該請求適用於http://homeserver/ampache/server/xml.server.php?action=handshake,但不是帶驗證詳細信息的完整網址。