package maxinawei.bw.com.xm_okhttp; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.io.IOException; import okhttp3.Cache; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button tongb; private Button yib; private Button huanc; private TextView suju; private String path="http://api.tianapi.com/world/?key=1c18879fe9abf299b86ddbfec3860f03&num=10"; private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case 0: String text = (String) msg.obj; suju.setText(text); break; case 1: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tongb = findViewById(R.id.tongb); yib = findViewById(R.id.yib); huanc = findViewById(R.id.huanc); suju = findViewById(R.id.suju); tongb.setOnClickListener(this); yib.setOnClickListener(this); huanc.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.tongb:tong(); break; case R.id.yib:yibu(); break; case R.id.huanc:bendi(); break; } } private void bendi() { int size=10*1024*1024; Cache cache = new Cache(getCacheDir(), size); OkHttpClient client = new OkHttpClient.Builder().cache(cache).build(); Request request = new Request.Builder().url(path).build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String string = response.body().string(); Message message=new Message(); message.obj=string; message.what=0; handler.sendMessage(message); } }); } private void yibu() { OkHttpClient client = new OkHttpClient.Builder().build(); Request request = new Request.Builder().url(path).build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String string = response.body().string(); Message message=new Message(); message.obj=string; message.what=0; handler.sendMessage(message); } }); } private void tong() { new Thread(){ @Override public void run() { OkHttpClient client = new OkHttpClient.Builder().build(); Request request = new Request.Builder().url(path).build(); try { Response response = client.newCall(request).execute(); String string = response.body().string(); Message message=new Message(); message.obj=string; message.what=0; handler.sendMessage(message); } catch (IOException e) { e.printStackTrace(); } } }.start(); } }
okHttp同步异步本地缓存
猜你喜欢
转载自blog.csdn.net/kingv587/article/details/80411242
今日推荐
周排行