新建类HttpUtil,可以避免在多个界面需要使用网络请求是代码的重复
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中点击事件代码
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); } }); }
本文介绍了一个名为HttpUtil的类,该类用于简化在多个界面中重复出现的网络请求代码。通过创建OkHttpClient实例并使用Callback进行异步请求处理,展示了如何在Mian.java中调用此方法来获取网页数据,并在UI线程中显示响应。

1436

被折叠的 条评论
为什么被折叠?



