簡體   English   中英

為什么android HttpURLConnection緩存輸入流結果?

[英]Why android HttpURLConnection cache the inputstream results?

我正在嘗試獲取一個xml文件,但它似乎是緩存的。 這是我的代碼:

URL url = new URL("http://delibere.asl3.liguria.it/SVILUPPO/elenco_xml.asp?rand=" + new Random().nextInt()+"&Oggetto=" + text +"&TipoDocumento="+tipoDocumento);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.setDefaultUseCaches(false); 
urlConn.setAllowUserInteraction(true);
urlConn.setDoInput(true);
urlConn.setDoOutput(true);   
urlConn.setUseCaches(false);
urlConn.setRequestMethod("GET");
urlConn.setRequestProperty("Pragma", "no-cache");
urlConn.setRequestProperty("Cache-Control", "no-cache");
urlConn.setRequestProperty("Expires", "-1");
urlConn.setRequestProperty("Content-type", "text/xml");     
urlConn.setRequestProperty("Connection","Keep-Alive"); 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream is = new BufferedInputStream(url.openStream());
Document doc = db.parse(is);
doc.getDocumentElement().normalize();

謝謝!

你意識到你沒有使用你的HttpURLConnection ,對嗎? 如果要使用HttpURLConnection獲取InputStream ,則需要調用

InputStream is = new BufferedInputStream(urlConn.getInputStream());

另外,我認為將Apache HttpClient用於Android的這類事情是標准的,因為它內置了比標准Java更好的API。

看起來他們有一個HttpClient的解決方案。 您可以嘗試一下,HttpClient可以更靈活地解決其他問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM