這是我的第一個問題,所以請,請耐心等待。如何從HttpURLConnection切換到HttpClient
我有一個Swing應用程序,它通過HttpURLConnection從服務器獲取XML數據。現在我試圖創建一個與服務器連續的請求 - 響應連接,以檢查應用程序是否有任何更新(因爲檢查必須定期和經常進行(每秒鐘左右))。
在一些問題的評論中,我讀到使用Apache HttpClient而不是HttpURLConnection來維持活動連接會更好,但是我找不到任何好的示例如何從我的當前代碼轉到使用HttpClient的代碼。具體來說,使用什麼來代替HttpURLConnection.setRequestProperty()和HttpURLConnection.getOutputStream()?
Document request = new Document(xmlElement);
Document response = new Document();
String server = getServerURL(datasetName);
try {
URL url = new URL(server);
try {
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("Content-Type","application/xml; charset=ISO-8859-1");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
OutputStream output = connection.getOutputStream();
XMLOutputter serializer = new XMLOutputter();
serializer.output(request, output);
output.flush();
output.close();
InputStream input = connection.getInputStream();
String tempString = ErrOut.printToString(input);
SAXBuilder parser = new SAXBuilder();
try {
response = parser.build(new StringReader(tempString));
}
catch (JDOMException ex) { ... }
input.close();
connection.disconnect();
}
catch (IOException ex) { ... }
}
catch (MalformedURLException ex) { ... }
謝謝,但和我的XML將實際要求的文字是什麼? 我試圖將StringEntity添加到postMethod中,將XML作爲字符串,但現在我只能得到「HTTP/1.1 400 Bad request」。 – Rolandas 2011-12-16 14:39:16