loc*_*ost 3 android json okhttp android-mvp
我正在开发一个新的Android应用程序,我想适当地组织所有组件-网络调用类,JSON解析类等。我正在使用Okhttp进行网络通话;经过大量研究,我能够像这样构造我的代码:
我的NetworkUtil类:
public class NetworkUtil {
public static void getData(String url, final OkHttpListener listener){
OkHttpClient client = new OkHttpClient();
// GET request
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
listener.onFailure(request, e);
}
@Override
public void onResponse(Response response) throws IOException {
listener.onResponse(response);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的网络回调接口:
public interface OkHttpListener {
void onFailure(Request request, IOException e);
void onResponse(Response response) throws IOException;
}
Run Code Online (Sandbox Code Playgroud)
这是我的Activity类:
OkHttpListener listener = new OkHttpListener() {
@Override
public void onFailure(Request request, IOException e) {
Log.e(LOG_TAG, e.toString());
}
@Override
public void onResponse(Response response) throws IOException {
String responseBody = response.body().string();
Log.i(LOG_TAG, responseBody);
}
};
String url = "http://myserver/api/getvalues";
OkHttpUtils.getData(url, listener);
String url1 = "http://myserver/api/getvalues/123";
OkHttpUtils.getData(url1, listener);
}
Run Code Online (Sandbox Code Playgroud)
这是我面临的问题:
我想基于不同的事件从活动/片段进行多个网络调用,如何设计活动类以使我能够发出多个请求。我还想为将在“活动”中使用的所有常用方法保留一个单独的类(也许是一个Application类)。我想使我的体系结构具有凝聚力。
我想在一个单独的类中解析JSON响应,并将结果传递给我的Activity类。如何在一个单独的类中解析JSON响应,并将结果从NetworkUtil类中的onSuccess()方法传递给我的Activity / Fragment类
我想在整个项目中不使用任何库或使用更少的库(至少用于JSON解析部分),此时,我将只使用okhttp。
如果有人可以将我引到git存储库或示例项目中进行查看,那将有很大的帮助。
您当前的代码无法进行测试,并且违反SOLID原则,您的活动很快就会变得太大而无法轻松维护。尽量避免使用Utils类。使用IoC。因此,我建议您看一下MVP / MVVM或任何其他演示模式。
搜索有关MVP模式的一些文章,并查看此存储库。祝好运。
| 归档时间: |
|
| 查看次数: |
586 次 |
| 最近记录: |