OkHttp使用实例
依赖
- OkHttp包
- compile 'com.squareup.okhttp3:okhttp:3.6.0'
- OkHttp依赖包
- compile 'com.squareup.okio:okio:1.11.0'
- json处理包
- compile 'com.google.code.gson:gson:2.8.0'
- 图示
具体例子【封装的两个类,可以直接调用】
get方式为例【重在理解原理】
import android.app.Activity; import java.io.IOException; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class OkHttpManager extends Activity { private Activity activity; public OkHttpManager(Activity activity) { this.activity = activity; } public void get(String url) { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().get().url(url).build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { ToastUtil.showToast(activity, "Get 失败"); } @Override public void onResponse(Call call, final Response response) throws IOException { final String responseStr = response.body().string(); runOnUiThread(new Runnable() { @Override public void run() { ToastUtil.showToast(activity, responseStr); } }); } }); } }
弹出框辅助类
import android.app.Activity; import android.util.Log; import android.widget.Toast; public class ToastUtil { public static void showToast(final Activity activity, final String message) { if ("main".equals(Thread.currentThread().getName())) { Log.e("ToastUtil", "主线程!"); Toast.makeText(activity, message, Toast.LENGTH_SHORT).show(); } else { activity.runOnUiThread(new Runnable() { @Override public void run() { Log.e("ToastUtil", "不在主线程!"); Toast.makeText(activity, message, Toast.LENGTH_SHORT).show(); } }); } } }