如题所示,只是一个单机版的的简单示例。android程序获取apache服务器内的json 数据。
在apache服务器的C:\Tomcat 9.0\webapps\ROOT下准备一个简单的json文件,如图所示。并开启服务。
1.修改布局。布局很简单,只有一个按钮和一个textview,点击按钮时获取服务器的json数据,用textview显示json数据。如图所示。
2.添加OkHttp依赖文件。
通过点击按钮获取服务器中的数据,用到了okhttp框架。其中,path为json的地址,如果本机的地址为:192.168.1.9,则path=“http://192.168.1.9:8080/fast.json”
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_get:
OkHttpClient okHttp=new OkHttpClient();
Request request=new Request.Builder().url(path).build();
Call call=okHttp.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) { }
@Override
public void onResponse(Call call, Response response) throws IOException {
String str=response.body().string();
Message msg=new Message();
msg.what=0;
msg.obj=str;
mhandler.sendMessage(msg);
}
});
break;
}
}
在主线程中,handler处理message并显示在textview或者用Gson解析成Bean对象。
mhandler=new Handler(){
@Override
public void dispatchMessage(@NonNull Message msg) {
super.dispatchMessage(msg);
switch (msg.what){
case 0:
if (msg.obj!=null){
textView.setText((String)msg.obj);//直接显示json数据
parseJsonDate((String)msg.obj);//解析成Bean对象
}
break;
}
}
};
添加Gson依赖,
private void parseJsonDate(String obj) {
Gson gson=new Gson();
InfoBean infoBean=gson.fromJson(obj,InfoBean.class);
textView.setText(infoBean.toString());
}
本文地址:https://blog.csdn.net/m0_47761892/article/details/107583466
如对本文有疑问, 点击进行留言回复!!
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
vert实践五——Json?Protocol Buffer?FlatBuffers?
[基于tensorflow的人脸检测] 基于神经网络的人脸检测8——验证训练好的神经网络
selenium + ajax抓取英雄联盟全部英雄的详细信息及多线程保存全部皮肤图片到本地
网友评论