package git.dzc.okhttputils; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; import java.io.IOException; import java.util.concurrent.TimeUnit; import git.dzc.okhttputilslib.CacheType; import git.dzc.okhttputilslib.JsonCallback; import git.dzc.okhttputilslib.OKHttpUtils; import okhttp3.CacheControl; import okhttp3.Call; import okhttp3.Request; public class MainActivity extends AppCompatActivity { private String TAG = MainActivity.this.getClass().getSimpleName(); private TextView tv1; private TextView tv2; private TextView tv3; private TextView tv4; private TextView tv5; private TextView tv6; private OKHttpUtils okHttpUtils; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); okHttpUtils = new OKHttpUtils.Builder(this).build(); tv1 = (TextView) findViewById(R.id.tv1); tv2 = (TextView) findViewById(R.id.tv2); tv3 = (TextView) findViewById(R.id.tv3); tv4 = (TextView) findViewById(R.id.tv4); tv5 = (TextView) findViewById(R.id.tv5); tv6 = (TextView) findViewById(R.id.tv6); tv1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getData(CacheType.ONLY_NETWORK); } }); tv2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getData(CacheType.ONLY_CACHED); } }); tv3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getData(CacheType.NETWORK_ELSE_CACHED); } }); tv4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getData(CacheType.CACHED_ELSE_NETWORK); } }); tv6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Request request = new Request.Builder().url(url).cacheControl(new CacheControl.Builder().maxAge(5, TimeUnit.SECONDS) .maxStale(5,TimeUnit.SECONDS).build()).build(); okHttpUtils.request(request, CacheType.ONLY_NETWORK, jsonCallback); } }); } private String url = "http://api.k780.com:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json"; private void getData(@CacheType int cacheType){ tv5.setText(""); Request request = new Request.Builder().url(url).build(); okHttpUtils.request(request, cacheType, jsonCallback); } private JsonCallback<DateModule> jsonCallback = new JsonCallback<DateModule>() { @Override public void onFailure(Call call, Exception e) { onFail(e); } @Override public void onResponse(Call call, final DateModule object) throws IOException { if(object!=null){ tv5.post(new Runnable() { @Override public void run() { tv5.setText(object.getResult().getDatetime_1()); } }); } } }; private void onFail(final Exception e){ tv5.post(new Runnable() { @Override public void run() { tv5.setText(e.toString()); } }); } }