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(); } }
OkHttp实践1
最新推荐文章于 2024-08-18 03:40:54 发布