这几天做一个Android获取JSON的任务,发现jsoup只能获取静态页面,无法获取动态页面的Json数据。 有同学给我更正:Jsoup可以爬取动态页面,但必须要加请求头(data),以下为正确例子: String url =
这几天做一个Android获取JSON的任务,发现jsoup只能获取静态页面,无法获取动态页面的Json数据。
有同学给我更正:Jsoup可以爬取动态页面,但必须要加请求头(data),以下为正确例子:
String url = "你的网页接口";
Map data = Maps.newHashMap();
data.put("countryCode", "+86");
data.put("mobile", mobile);
data.put("passWord", "f20332f07cdaab9ec0472655a83438d4");
data.put("invitionCode", "PU9HFMNMZ2FL");
data.put("validateCode", codeCallable);
data.put("geetest_challenge", challenge);
data.put("geetest_validate", validate);
data.put("geetest_seccode", validate + "|jordan");
String json = JSON.toJSONString(data);
Connection.Response response = Jsoup.connect(url).ignoreContentType(true).data(data).requestBody(json)
.header("Accept", "application/json, text/plain, *
String NewsData = stringBuffer.toString();
JSONObject jb = JSON.parseObject(NewsData);
String Newsdata2 = jb.getString("data");
JSONObject jb1 = JSON.parseObject(Newsdata2);
String Newsdata3 = jb1.getString("list");
Log.e("Newsdata3", "Newsdata3"+Newsdata3);
List DNews = JSON.parseArray(Newsdata3, News.class);
for (News TT:DNews)
{
jsonTeacherEntity = new News();
int id = TT.getId();
String game_name = TT.getGame_name();
int is_grandslm = TT.getIs_grandslm();
String game_level = TT.getGame_level();
String ground_name = TT.getGround_name();
String match_time = TT.getMatch_time();
jsonTeacherEntity.setId(id);
jsonTeacherEntity.setGame_name(game_name);
jsonTeacherEntity.setGame_level(game_level);
jsonTeacherEntity.setIs_grandslm(is_grandslm);
jsonTeacherEntity.setGround_name(ground_name);
jsonTeacherEntity.setMatch_time(match_time);
NewsList.add(jsonTeacherEntity);
}
}
} catch (MalfORMedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
//通知适配器发生改变
myAdapter.notifyDataSetChanged();
//取消进度条对话框
progressDialog.cancel();
}
}
}
主界面UI代码:activity_main.xml
代码直接复制上去,调试下,直接就可以运行。
运行截图:
作者运行环境:android studio 3.5.3
Android的坑太大了,跳进去一定要多百度,多阅读代码,把代码都消化才有进步。
--结束END--
本文标题: Android爬取网页JSON数据详细教程【新手向】
本文链接: https://lsjlt.com/news/29633.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0