Android開発(41)ネットワークアクセスクラスライブラリVolley

3080 ワード

Volleyとは
Google I/O 2013にて、Volleyがリリースされました.VolleyはAndroidプラットフォーム上のネットワーク通信ライブラリであり、ネットワーク通信をより速く、より簡単に、より丈夫にすることができます.これはVolley名の由来です:a burst or emission of many things or a large amount at once
特長
JSON、画像、バイナリテキスト、メモリとディスクキャッシュ、強力なカスタマイズ能力、debugと追跡ツールをサポートする
どのように入手しますか?
クラウドディスクにコンパイルされたhttp://yunpan.cn/cg7S8awftBsmpアクセスパスワードb 1 bf
どう使いますか.
1.「要求キュー」RequestQueueを構築する2.要求Requestを構築する2.StringRequest,JsonRequestをサポートし、Requestをカスタマイズする3.コールバックリスナーを構築する4.要求をキューに追加する4.
デモコード
HTTP GETデモ:
public class SimpleGetActivity extends Activity {
    RequestQueue mRequestQueue;
    TextView txt_msg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_get);
        txt_msg = (TextView) findViewById(R.id.txt_msg);
        
        mRequestQueue = Volley.newRequestQueue(this);
    }

    public void btn1OnClick(View v) {
        String url = "http://www.baidu.com";
        
        StringRequest req = new StringRequest(Method.GET, url, 
                responseListener, mErrorListener);
        
        mRequestQueue.add(req);
    }
    
    Listener responseListener =new Listener() {

        @Override
        public void onResponse(String str1) {
            txt_msg.setText(str1);
        }
    };
    
    ErrorListener mErrorListener = new ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError volleyError) {
            
            Toast.makeText(getBaseContext(), volleyError.getMessage(), 0).show();
        }
    };

}

HTTP POST方式送信パラメータ
public class ParasPostActivity extends Activity {
    RequestQueue mRequestQueue;
    TextView txt_msg;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_paras_post);
    txt_msg = (TextView) findViewById(R.id.txt_msg);
    
    mRequestQueue = Volley.newRequestQueue(this);
}


public void btn1OnClick(View v) {
    String url = Constants.URL_FOR_DEMO1;
    
    StringRequest req = new StringRequest(Method.POST, url, 
            responseListener, mErrorListener){
        @Override
        protected Map getParams()
                throws AuthFailureError {
            return new ApiParams().with("key1", "v1").with("key2", "v2");
        }
    };
    mRequestQueue.add(req);
}

Listener responseListener =new Listener() {

    @Override
    public void onResponse(String str1) {
        txt_msg.setText(str1);
    }
};

ErrorListener mErrorListener = new ErrorListener() {

    @Override
    public void onErrorResponse(VolleyError volleyError) {
        
        Toast.makeText(getBaseContext(), volleyError.getMessage(), 0).show();
    }
};

}

注意伝参は匿名クラスで実現され,getParamsメソッドを再ロードした.
参照先:
http://blog.csdn.net/t12x3456/article/details/9221611 me.storm.volleyの例