インターネットから xml ファイルを読み込もうとしています。
これは私が使用しているコードです:
HttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.mypage.com/version.xml");
HttpResponse resp = client.execute(httppost);
そして、私はこの例を取得しています:
android.os.NetworkOnMainThreadException
回答に従って非同期メソッドでこれを実行しようとしています。これは私が試したコードです:
public class Download extends AsyncTask<String, Void, Document> {
@SuppressWarnings("unused")
private Exception exception;
public Document document;
public Download(String url)
{
this.execute(url);
}
@Override
protected Document doInBackground(String... url) {
try {
HttpUriRequest request = new HttpGet(url.toString());
HttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(request);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(response.getEntity().getContent());
return document;
} else {
throw new IOException("Download failed, HTTP response code "
+ statusCode + " - " + statusLine.getReasonPhrase());
}
} catch (Exception e) {
exception = e;
return null;
}
}
protected void onPostExecute(Document doc)
{
// TODO: check this.exception
// TODO: do something with the feed
document = doc;
}
}
しかし、ドキュメントは無効です。