我有一個服務器應用程序,它響應帶有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 + "×tamp=" + 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 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>
你能給我們展示一些代碼嗎?沒有代碼,很難說你做錯了什麼。 –
@UwePlonus,已添加。 – Nick