Gson解析HTTP请求的响应json数据,Map/Bean

版权声明:本文为博主搜索整合文章。 https://blog.csdn.net/weixin_37794901/article/details/79108355

maven依赖:

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>

Demo:请求qq,获取user信息

private static final String QQ_APPID = "XXXXXXX";
private static final String GET_USER_INFO = "https://graph.qq.com/user/get_user_info";
private static final String HEADER = "Content-Type", CONTENNT = "text/xml";


/**
* 利用获取到的accessToken,openid 去获取用户在Qzone的昵称等信息

* @param request
* @return
*/
public Map<String, Object> getUserInfo(HttpServletRequest request, Map<String, Object> param) {
Map<String, Object> response = new HashMap<String, Object>();
// 发送请求
try {
String token = param.get("accessToken").toString();
String openID = param.get("openID").toString();
String memberKey = param.get("memberKey").toString();
StringBuffer url = new StringBuffer(GET_USER_INFO + "?access_token=" + token + "&oauth_consumer_key=" + QQ_APPID + "&openid=" + openID);
HttpGet httpGet = new HttpGet(url.toString());
httpGet.addHeader(HEADER, CONTENNT);
HttpClient httpClient = HttpClientBuilder.create().build();
// 发送请求,获取结果
String entSt = EntityUtils.toString(httpClient.execute(httpGet).getEntity());
Gson gson = new Gson();
Map<String,Object> sqlParam = gson.fromJson(entSt,  new TypeToken<HashMap<String,Object>>(){}.getType());//转Map
if ("0".equals(sqlParam.get("ret").toString())) {
QQUesr qqUesr = new Gson().fromJson(entSt, QQUesr.class);//转对象
//保存数据
//TODO
response.put("qq_info", qqUesr );
}
}
catch (ClientProtocolException e) {
log.getLogger("qq_s").error("请求https://graph.qq.com/user/get_user_info失败", param);
e.printStackTrace();
}
catch (Exception e) {
log.getLogger("qq_s").error("QQService.getUserInfo({})", param);
}
return response;
}

PS:demo中的请求是在APP完成QQ登入授权之后哦


猜你喜欢

转载自blog.csdn.net/weixin_37794901/article/details/79108355
今日推荐