私は、JSON オブジェクトをサーバーに投稿し、応答として返される Android アプリケーションに取り組んでいます。サーバーが応答する JSON をメインスレッドに返す方法に行き詰まっています。以下は私がこれまでに持っているコードです。バックグラウンド プロセスを実行した後でも、getResponse を呼び出すと null が返されます。
import java.io.UnsupportedEncodingException;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject;
import android.os.AsyncTask;
public class AsyncHttpPost extends AsyncTask<String, String, HttpResponse> {
private JSONObject mData = null;// post data
private HttpResponse response = null;
/**
* constructor
*/
public AsyncHttpPost(JSONObject json) {
mData = json;
}
public HttpResponse getResponse() {
return response;
}
/**
* background
*/
@Override
protected HttpResponse doInBackground(String... params) {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(params[0]);
try {
post.setEntity(new StringEntity(mData.toString()));
response = client.execute(post);
}catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
catch (Exception e) {
}
return response;
}
}