0

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 のない例が必要です。

4

2 に答える 2

1

Gingerbread (2.3) 以降では、HTTP データを取得するための推奨される方法は HttpUrlConnection です。詳細については、このブログ投稿を確認してください。HttpUrlConnectionの Javadoc を確認することもできます。

URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
    InputStream in = new BufferedInputStream(urlConnection.getInputStream());
    readStream(in);
} finally {
    urlConnection.disconnect();
}
于 2012-11-04T20:35:17.213 に答える
0

あなたの問題は、ここでの「厳密なモード」かもしれません。

スレッドまたは AsyncTask で 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
        }

それから:

new RequestTask().execute(yourHttpRequestString)
于 2012-11-06T23:50:45.913 に答える