獲取三方系統的token並訪問第三方系統

一、對接三方系統

      當我們要查看三方系統的信息時,一般會先獲取到三方系統的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系統。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章