我想使用此代码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