okhttp使用
okhttp是一种新的网络请求框架,对网络强求做了优化。
同步调用:
public static String getStringByUrl(String url){ try { initClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); String result = response.body().string(); return result; } catch (IOException e) { e.printStackTrace(); return null; } }
private void okhttpTest(){ new Thread(new Runnable() { @Override public void run() { final String url = "http://www.baidu.com"; final String result = OkhttpUtils.getStringByUrl(url); new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show(); } }); } }).start(); }
异步调用:
private void okhttpTest3(final Context context){ final String url = "https://www.baidu.com"; Request request = new Request.Builder() .url(url) .build(); OkHttpClient client = new OkHttpClient(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { Toast.makeText(context, "Fail!", Toast.LENGTH_SHORT).show(); } }); } @Override public void onResponse(Response response) throws IOException { final String result = response.body().string(); new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { Toast.makeText(context, result, Toast.LENGTH_SHORT).show(); } }); } }); }