サーバー側からデータを取得するために AsyncTask を作成しようとしていました。ただし、「IOUtils.copy((response_.getEntity().getContent()), writer);」行の onPostExecute() で Null ポインター例外が報告されます。いくつかのログを使用して何が起こるかを確認したところ、ログ 1 と 3 は印刷されていましたが、ログ 2 は印刷されていませんでした。client.executed() が終了する前に onPostExecute が実行されたのはなぜですか? 誰でもいくつかの提案をすることができますか?
private class GetForm extends AsyncTask<String, Integer, Object> {
private HttpResponse response_;
private Exception exception_;
private String url_;
public GetForm(String url) {
super();
url_ = url;
}
protected Object doInBackground(String... params) {
try {
Log.i("mylog","inside doInbackground 1.");
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url_);
response_ = client.execute(request);
Log.i("mylog","inside doInbackground 2.");
} catch (Exception e) {
exception_ = e;
}
return response_;
}
@Override
protected void onPostExecute(Object o) {
// Your current UI stuff here.
Log.i("mylog","inside onPostExecute 3.");
StringWriter writer = new StringWriter();
try{
IOUtils.copy((response_.getEntity().getContent()), writer);
......
}catch(IOException e) {
e.printStackTrace();
}
}
}