Java Android-如何使用Android 4.0下载XML文件?

Java Android-如何使用Android 4.0下载XML文件?,java,android,xml,download,Java,Android,Xml,Download,我将使用Android 4.0下载XML文件我的旧代码在Android 2.3.3中工作,如下所示: public String getXmlFromUrl(String url) { String xml = null; try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = ne

我将使用Android 4.0下载XML文件我的旧代码在Android 2.3.3中工作,如下所示:

public String getXmlFromUrl(String url) {
    String xml = null;

    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        xml = EntityUtils.toString(httpEntity);

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    // return XML
    return xml;
}
我必须有一个没有DefaultHttpClient的示例。

来自Gingerbread(2.3)及以上版本,检索HTTP数据的首选方法是HttpUrlConnection。你可能想看看细节。您可能还需要检查

你的问题可能是这里的“严格模式”

您必须使用线程或异步任务执行http请求

class RequestTask extends AsyncTask<String, String, String>{

        @Override
        protected String doInBackground(String... params) {
             //http request here
            //return the response as string
        }
        @Override
        protected void onPostExecute(String result) {
            //set the the data you get
        }
class RequestTask extends AsyncTask<String, String, String>{

        @Override
        protected String doInBackground(String... params) {
             //http request here
            //return the response as string
        }
        @Override
        protected void onPostExecute(String result) {
            //set the the data you get
        }
new RequestTask().execute(yourHttpRequestString)