okhttp简单封装
okhttp使用简单封装库
简介
okhttp执行网络请求时是自动开子线程进行的,但是处理网络数据回调回来时,也在子线程中,而我们日常开发主要是在主线程中更新UI,这样是极不方便的,为了解决这个问题和简化okhttp的使用难度,本库对okhttp做了一个简单的封装
版本说明:
okhttp版本信息:3.6.0
使用说明
本库分为三个类:
1. OkHttpManager – 网络底层类,执行网络请求的真正实现类
2. NetCall -- 网络请求类标准接口,OKHttpManager就实现这个接口,如果要添加新的网络访问方式,就在这个类添加标准接口即可
3. NetCallBack -- 网络回调类,网络请求完成后回调类
具体使用方法:
以一个登陆Activity里面使用为例说明:
public class MainActivity extends AppCompatActivity {
private NetCall mNetManager = OkHttpManager.getInstance();
private static final String LOGIN_TASK = "login";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
HashMap<String,String> loginParams = new HashMap<>();
loginParams.put("mobile", "username");
loginParams.put("password", "password");
String params = new JSONObject(loginParams).toString();
mNetManager.OkHttpPostJSON(params, new NetBack(LOGIN_TASK, this)); //开始网络请求
}
private static class NetBack extends NetCallBack {
WeakReference<MainActivity> weakReference;
public NetBack(String flag, MainActivity activity) {
super(flag);
weakReference = new WeakReference<>(activity);
}
/**
* okhttp回调
* @param str 回调的字符串
* @param taskFlag 任务标志
*/
@Override
public void responseToMainThread(String str, String taskFlag) {
MainActivity activity = weakReference.get();
if(null == activity){
return;
}
if(MainActivity.LOGIN_TASK.equals(taskFlag)){
//写你的登录结果处理代码
}
}
@Override
public void responseTOMainError(String netTaskFlag) {
MainActivity activity = weakReference.get();
if(null == activity){
return;
}
}
}
}
总结
如有更好的解决办法,不吝赐教
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】