一、对接三方系统
当我们要查看三方系统的信息时,一般会先获取到三方系统的token,然后让前端拼token带上url来访问三方系统的接口,先不考虑到加密的问题。
比如查看oa系统的po号,需要先让前端掉一个获取oa系统的token接口,后端通过使用Http的方式来获取到token后,返回给前端,前端拿到token后,然后再根据配置的地址来访问oa系统:
通过http请求的方式来获取token,oa系统会返回一个对象或者json串给本系统:
public String getOaToken(String employeeCode, Long setOfBooksId) {
OaToken oaToken = new OaToken();
String HOST = organizationService.getParameterValue(null, setOfBooksId, "CUX_FEC_OA_TOKEN_URL");
OaToken client = new OaToken();
JSONObject json = new JSONObject();
json.put("hrid", employeeCode);
String reslut = null;
try {
reslut = oaToken.doPostData(HOST, json.toString());
return reslut;
} catch (Exception e) {
return e.getMessage();
}
}
POST方式的HTTP请求:
public String doPostData(String url, String json) throws Exception {
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
String result = "";
HttpResponse res = null;
try {
StringEntity s = new StringEntity(json.toString(), "UTF-8");
s.setContentType("application/json");
post.setHeader("Accept", "application/json");
post.setHeader("Content-type", "application/json; charset=utf-8");
post.setEntity(s);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
result = EntityUtils.toString(res.getEntity());
return result;
}
} catch (Exception e) {
if(res == null) {
return "HttpResponse 为 null!";
}
throw new RuntimeException(e);
}
if(res == null || res.getStatusLine() == null) {
return "无响应";
}
return result;
}
返回结果:
然后前端就可以拿到token来访问oa系统。