Android高速開発フレームワークのxUtils---ネットワークモジュール

15543 ワード

このブログでは、xUtilsのネットワークモジュールについて説明します.学習したい方は、まず最初のAndroidクイック開発フレームワークのxUtils-注釈モジュールを見て、最初のステップ2を完了する必要があります.
1.必要な権限の追加
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2.Getリクエストを使用してネットワークデータを取得します.詳細はコードコメントを参照してください.
    @Event(R.id.get)
    private void get(View view) {
        //    
        RequestParams params = new RequestParams("http://www.omghz.cn/FirstService/getString");
        //      
//        params.addQueryStringParameter("username", "  ");
//        params.addQueryStringParameter("password", "123456");
        //Callback.CommonCallbackString-->            
        Callback.Cancelable cancelable = x.http().get(params, new Callback.CommonCallback() {
            @Override
            public void onSuccess(String result) {
                //      ,result:     
                textView.setText("Get: " + result);
            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {
                //        
                //ex--->    
                //isOnCallback--->true             (onSuccess,onCancelled,onFinished)
                //isOnCallback--->false           
            }

            @Override
            public void onCancelled(CancelledException cex) {
                //           
            }

            @Override
            public void onFinished() {
                //          
            }
        });
//        cancelable.cancel();//    onCancelled()
    }

3.Post要求によるネットワークデータの取得
@Event(R.id.post)
    private void post(View view) {
        String path = "http://www.omghz.cn/FirstService/getString";
        RequestParams params = new RequestParams(path);
        //        body 
        params.addBodyParameter("username", "  ");
        //              body       
        params.addBodyParameter("password", "123456");
        x.http().post(params, new Callback.CommonCallback() {
            @Override
            public void onSuccess(String result) {
                textView.setText("Post: " + result);
            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {

            }

            @Override
            public void onCancelled(CancelledException cex) {

            }

            @Override
            public void onFinished() {

            }
        });
    }

4.その他の要求方式の使用
    @Event(R.id.other)
    private void other() {
        RequestParams params = new RequestParams("http://www.omghz.cn/FirstService/getString");
        //           
        x.http().request(HttpMethod.GET, params, new Callback.CommonCallback() {
            @Override
            public void onSuccess(String result) {
                textView.setText("Other: " + result);
            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {

            }

            @Override
            public void onCancelled(CancelledException cex) {

            }

            @Override
            public void onFinished() {

            }
        });
    }

5.ファイルをサーバーにアップロードするには、サービス側とどのような姿勢でアップロードすればよいかをコミュニケーションする必要があります.
@Event(R.id.upload)
    private void upLoad(View view) {
        //       
        String path = Environment.getExternalStorageDirectory() + "/1.docx";
        //          
        String url = "http://www.omghz.cn/FirstService/FileReceive";
        RequestParams params = new RequestParams(url);
        //  Multipart    
        //params.setMultipart(true);
        params.addHeader("FileName", "1.docx");
        File file = new File(path);
        params.addBodyParameter("File", file);
        x.http().post(params, new Callback.CommonCallback() {
            @Override
            public void onSuccess(String result) {
                Toast.makeText(getActivity(), result, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {

            }

            @Override
            public void onCancelled(CancelledException cex) {

            }

            @Override
            public void onFinished() {

            }
        });
    }

6.サーバからファイルをダウンロードし、Callbackを使用する.ProgressCallback<>進捗のあるコールバックインタフェース
@Event(R.id.download)
    private void downLoad(View view) {
        String url = "http://www.omghz.cn/FirstService/File/SwipeBack.apk";
        RequestParams params = new RequestParams(url);
        //        
        params.setSaveFilePath(Environment.getExternalStorageDirectory());
        //          
        params.setAutoRename(true);
        x.http().get(params, new Callback.ProgressCallback() {
            @Override
            public void onSuccess(File result) {
                //        apk,            
                Intent intent = new Intent();
                intent.setDataAndType(Uri.fromFile(result), "application/vnd.android.package-archive");
                getActivity().startActivity(intent);
            }

            @Override
            public void onLoading(long total, long current, boolean isDownloading) {
                //              ,      
                seekBar.setMax((int) total);
                seekBar.setProgress((int) current);
            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {

            }

            @Override
            public void onCancelled(CancelledException cex) {

            }

            @Override
            public void onFinished() {

            }

            @Override
            public void onWaiting() {
                //         ,     

            }

            @Override
            public void onStarted() {
                //           
            }

        });
    }

7.ネットワーク要求帯キャッシュ、具体的にはonCacheコールバック方法を参照
@Event(R.id.cache)
    private void cache(View view) {
        String url = "http://www.omghz.cn/FirstService/getString";
        RequestParams params = new RequestParams(url);
        //      -->  ms
        params.setCacheMaxAge(1000 * 60);
        x.http().get(params, new Callback.CacheCallback() {
            @Override
            public void onSuccess(String result) {
                textView.setText("Cache: " + result);
            }

            @Override
            public boolean onCache(String result) {
                //result--->    
                //    true       , 60s      get  ,onSuccess    
                //    false        , 60s      get  ,onSuccess    
                return false;
            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {

            }

            @Override
            public void onCancelled(CancelledException cex) {

            }

            @Override
            public void onFinished() {

            }

        });
    }

効果図
Android快速开发框架之xUtils---网络模块_第1张图片
xUtilsのネットワークモジュールには、これらの部分がほぼ含まれています.これも私たちの開発でよく使われています.具体的な学習資料は に行って勉強することができて、次に私達はピクチャーモジュールについて話します.
プロジェクトのアドレス:https://github.com/azhong1011/xUtils