该方法接收一个JSON字符串参数phoneNum 内容: {"phone":"13712312312"}
然后解析参数中的手机号,作为data去调用URL接口,接收接口返回的复合JSON并解析,拿到想要的数据
public String queryUserResumeURLInfo(String phoneNum) {
System.out.println("this is phoneNum: ======"+phoneNum);
if(phoneNum.length() == 0){
log.info("手机号为空!" );
return null;
}
// 请求地址
String url = "访问认证的URL";
HttpHeaders headers = new HttpHeaders();
String mediaType = MediaType.APPLICATION_JSON_VALUE;
headers.setContentType(MediaType.parseMediaType(mediaType));
headers.set("Accept", mediaType);
// headers.set("Basic Auth", "uVJowCwUE08z2Hfw0aLXTZvZo66C19Rk");
headers.set("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString(("用户名" + ":" + "密码").getBytes()));
Map map = new HashMap<>();
//传递参数,这里解析了传进来的JSON类型的手机号,并作为参数传给调用的接口
map.put("phone", phoneNum.substring(phoneNum.indexOf(":")+2,phoneNum.lastIndexOf("}")-1));
JSONObject json = new JSONObject(map);
// System.out.println("this is json: ======"+json.toString());
HttpMethod method = HttpMethod.POST;
try {
ResponseEntity result = RestUtil.request(url, method, headers, null, json, JSONObject.class);
if (result != null && result.getBody() != null) {
log.info("返回结果:{}" ,result.getBody().toJSONString());
JSONObject jsonObject = JSONObject.parseObject(result.getBody().toString());
String resumeDataInfo =jsonObject.getJSONArray("data").getJSONObject(0).getJSONObject("basicInfo").getString("ehrCandidateExternalLink");
// System.out.println("this is data:-------"+resumeDataInfo);
return resumeDataInfo;
} else {
log.warn("查询失败,url={}",url);
}
}catch (Exception e){
log.error("查询发生异常,url={}",url,e);
}
return null;
}
其中fastJSON解析复杂JSON文本