アプリケーションがサーバーから複数の Json 情報を取得する
Http
なしでリクエストを実行する方法を探しています。それを行う方法はありますか、またはサーバーから Json 情報を取得AsyncTask
するために使用し続ける必要がありますか?AsyncTask
アプリケーションがサーバーから複数の Json 情報を取得する
Http
なしでリクエストを実行する方法を探しています。それを行う方法はありますか、またはサーバーから Json 情報を取得AsyncTask
するために使用し続ける必要がありますか?AsyncTask
Android Asynchronous Http Client (Loopj) ライブラリをご覧になることをお勧めします。「典型的な」http リクエストの例を次に示します。
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.google.com", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
System.out.println(response);
}
});
これはあなたがこれを行うことができる方法です
public class RequestClient extends AsyncTask<String, Void, String>{
Context context;
public RequestClient(Context c) {
context = c;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... aurl){
String responseString="";
HttpClient client = null;
try {
client = new DefaultHttpClient();
HttpGet get = new HttpGet(LoginActivity.url);
HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
responseString = EntityUtils.toString(resEntityGet);
Log.i("GET RESPONSE", responseString.trim());
}
} catch (Exception e) {
Log.d("ANDRO_ASYNC_ERROR", "Error is "+e.toString());
}
Log.d("ANDRO_ASYNC_RESPONSE", responseString.trim());
client.getConnectionManager().shutdown();
return responseString.trim();
}
@Override
protected void onPostExecute(String response) {
super.onPostExecute(response);
}
}
メインクラスから次のように呼び出す必要があります
RequestClient reqClient = new RequestClient(this);
reqClient.execute().get();