基于Android Volley的網絡請求工具:android-volley-manager

基于Volley的網絡請求工具。

一、說明

AndroidVolley,Volley核心庫工程(https://github.com/mcxiaoke/android-volley)。
AndroidVolleySample,網絡請求工具示例工程。
Release,jar包。直接下載

二、Volley基本處理流程:

1、應用初始化Volley。
2、Volley創建一個RequestQueue、NetworkDispatcher組及Network。
3、RequestQueue即一個Request隊列,RequestQueue會創建一個ExecutorDelivery。
4、NetworkDispatcher實質是Thread,從RequestQueue中取Request,通過Network加以執行。
5、Network負責網絡請求處理,具體過程交給HttpStack處理。
6、HttpStack分HttpURLConnection(SDK_INT>=9)HttpClient與兩種方式。
7、ExecutorDelivery負責處理請求結果,并與主線程進行交互。
8、Volley在上述2-7的基礎上增加了Cache等附加處理環節。

三、網絡請求工具示例

1.init RequestManager
public class VolleyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        RequestManager.getInstance().init(this);
    }

@Override
public void onTerminate() {
    super.onTerminate();
}

}</pre></code>

2.make request by RequestManager
public class MainActivity extends Activity {
    private LoadControler loadControler = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    testPost();
    testGet();
}

/**
 * test POST method
 */
private void testPost() {
    loadControler = RequestManager.getInstance().post("http://allthelucky.ap01.aws.af.cm/memoServer", null, requestListener, 0);
}

/**
 * test GET method
 */
private void testGet() {
    loadControler = RequestManager.getInstance().get("http://allthelucky.ap01.aws.af.cm/memoServer", requestListener, 1);
}

/**
 * RequestListener for receiving result
 */
private RequestListener requestListener = new RequestListener() {

    @Override
    public void onRequest() {

    }

    @Override
    public void onSuccess(String response, String url, int actionId) {
        System.out.println("actionId:"+actionId+", OnSucess!\n"+response);
    }

    @Override
    public void onError(String errorMsg, String url, int actionId) {
        System.out.println("actionId:"+actionId+", onError!\n"+errorMsg);
    }
};

@Override
public void onBackPressed() {
    super.onBackPressed();
    loadControler.cancel();
}

}</pre></code>https://github.com/winfirm/android-volley-manager

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!