新建類HttpUtil,能夠避免在多個界面須要使用網絡請求是代碼的重複html
package com.example.networktest; import okhttp3.OkHttpClient; import okhttp3.Request; /** * Created by lenovo on 2019/3/19. */ public class HttpUtil { public static void sendOkHttpRequest(String address,okhttp3.Callback callback){ OkHttpClient client=new OkHttpClient(); Request request=new Request.Builder().url(address).build(); client.newCall(request).enqueue(callback);//內部自動打開了線程 }
Mian.java中點擊事件代碼java
public void onClick(View v){ if (v.getId()==R.id.button1){ // sendRequestWithHttpURLConnection(); // sendRequestWithOkHttp(); HttpUtil.sendOkHttpRequest("https://www.qu.la/book/101104/5290362.html",new okhttp3.Callback(){ @Override public void onResponse(Call call, Response response) throws IOException { String responseData=response.body().string();//獲取返回的值 showResponse(responseData);//本身寫的方法 } @Override public void onFailure(Call call, IOException e) { } }); } }
private void showResponse(final String response){ runOnUiThread(new Runnable() {//因爲子線程不許許操做UI因此使用runOnUiThread方法切換到主線程 @Override public void run() { text.setText(response); } }); }