OkHttp实践1

来源:互联网 发布:二战美国驱逐舰数据 编辑:程序博客网 时间:2024/06/06 07:10
import android.os.AsyncTask;import java.io.IOException;import java.util.List;import java.util.Map;import okhttp3.Call;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;/** * Created by halong on 2017/6/7. */public class StringDownloader {    private OkHttpClient mOkHttpClient = new OkHttpClient();    public void downloadString(String url, List<Map<String, String>> params, Callback mCallback) {        new StringDownloadTask(url, params, mCallback).execute();    }    public class StringDownloadTask extends AsyncTask<Void, Integer, String> {        String url;        List<Map<String, String>> params;        Callback mCallback;        public StringDownloadTask(String url, List<Map<String, String>> params, Callback mCallback) {            this.url = url;            this.params = params;            this.mCallback = mCallback;        }        @Override        protected String doInBackground(Void... voids) {            Request request = null;            if (params == null) {                request = new Request.Builder().url(url).build();            } else {                FormBody.Builder mFormBodyBuider = new FormBody.Builder();                for (Map<String, String> param :                        params) {                    for (String key :                            param.keySet()) {                        mFormBodyBuider.add(key, param.get(key));                    }                }                request = new Request.Builder().url(url).post(mFormBodyBuider.build()).build();            }            Call mCall = mOkHttpClient.newCall(request);            try {                Response mResponse = mCall.execute();                return mResponse.body().string();            } catch (IOException e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            if (s != null) {                mCallback.onSuccess(s);            } else {                mCallback.onFailure();            }        }    }    public interface Callback {        void onSuccess(String result);        void onFailure();    }}


 
原创粉丝点击