2013-07-30 104 views
-3

我的應用程序從服務器獲取多的Json信息android在沒有AsyncTask的情況下執行HTTP請求?

目的尋找任何方式不AsyncTask執行Http要求,有沒有辦法做到這一點還是我一直在使用AsyncTask到從服務器獲取的Json信息,以保持?

+0

爲什麼不使用AsyncTask? – Shlublu

+1

是的,你可以使用線程... – Selvin

+0

@Selvin沒有目標使用AsyncTask,但在同一活動應用程序有4個按鈕,例如當我點擊按鈕1和按鈕2按鈕2必須等待按鈕1電話其完成執行http我想同時執行1和2 –

回答

2

我建議採取看看Android Asynchronous Http Client (Loopj) library。這是一個「典型」http請求的例子。

AsyncHttpClient client = new AsyncHttpClient(); 
client.get("http://www.google.com", new AsyncHttpResponseHandler() { 
    @Override 
    public void onSuccess(String response) { 
     System.out.println(response); 
    } 
}); 
+0

真棒,但我可以發送Cookie扔頭? –

+0

其工作非常非常非常非常感謝你,但我仍然不知道劑量它發送cookie?如果是的話如何? –

+0

我不確定你的意思是「餅乾扔頭」。 cookie的文檔可以在這裏看到 - http://loopj.com/android-async-http/。您可以使用'client.addHeader(「標題名稱」,「標題值」)添加http標題 – loeschg

0

這是如何ü可以做到這一點

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); 
     } 
} 

和u必須從主類稱其爲

RequestClient reqClient = new RequestClient(this); 
reqClient.execute().get(); 
+0

這是做什麼的目的不是,但目的是尋找另一個等待執行多個http同時 –

+0

你有沒有嘗試過這個循環 – Developer

+0

RequestClient reqClient = new RequestClient(this); reqClient.execute()。get(); RequestClient reqClient = new RequestClient(this); reqClient.execute()。get(); – Developer

相關問題