我想使用此代碼HttpURLConnection的切割的InputStream返回
private InputStream downloadUrl(String urlString) throws IOException {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
InputStream stream = conn.getInputStream();
return stream;
}
當我嘗試使用此輸入流得到一個字符串我缺少的beggining並最終獲得從Web服務器的inputStrem,所以它似乎正在削減一些東西。 但是使用DefaultHttpClient,HttpGet和HttpResponse的結果是好的。
private String downloadPHP(String urlString){
String st = null;// aqui el XML descargado
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(URL);
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
st = StringUtils.inputStreamToString(content);
}
catch (Exception e) {
//Log.i(Constants.DEBUG_TAG, e.getMessage());
}
return st;
}
由於谷歌正在推薦使用HttpUrlConnection,有什麼想法來解決這個問題嗎?
這是從inoutstream
public static String inputStreamToString(final InputStream stream) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
return sb.toString();
}
解決了它我很快測試了你的代碼,它似乎工作正常。不過,我把它全部放在同一個功能中。 「錯過開始和結束」是什麼意思? – MoRe
嗨,我正在向Web服務器發出請求以從數據庫獲取一些信息。它應該返回一個xml格式的字符串,如 – Javier
嗨,我正在向Web服務器發出請求以從數據庫獲取一些信息。它應該返回一個字符串在xml fomrat包括所有的標籤等。使用DefaultHttpClient一切都很好,但使用HttpUrlConnection返回的信息是worng,我缺少第一個標籤的一部分(文檔中的第一個),信息被切入 – Javier