private void initData(){ //初始化數據 System.out.println("從第三方獲取數據開始"); //獲取token令牌 Map<String, Object> token = getToken(); String access_token = StringHelper.null2String(token.get("accessToken")); String expiresIn = StringHelper.null2String(token.get("expiresIn")); System.out.println("----access_token----"+access_token); } private Map<String,Object> getToken(){ Map<String,Object> map=new HashMap<String,Object>(); String url = "http://192.168.19.214:8081/api/outh2/token.json?appid=8a01b653107a409196d545a59c4fabb0&secret=6ad596f785f14c31af20321a7d37ab02"; String tokenResponse=HttpUtils.getRemoteData(url); JSONObject parse=JSONArray.parseObject(tokenResponse); String accessToken=StringHelper.null2String(parse.get("accessToken")); String expiresIn=StringHelper.null2String(parse.getString("expiresIn")); map.put("accessToken",accessToken); map.put("expiresIn",expiresIn); return map; }
其中通過鏈接獲取數據的方法
public static String getRemoteData(String uri) { CloseableHttpClient httpclient = HttpClients.createDefault(); HttpGet httpGet=new HttpGet(uri); HttpParams httpParams = new BasicHttpParams(); httpParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, CONNECTION_TIMEOUT); httpParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, SO_TIMEOUT); CloseableHttpResponse response = null; try { response = httpclient.execute(httpGet); if (response.getStatusLine().getStatusCode() == 200) { String content = EntityUtils.toString(response.getEntity(), "UTF-8"); return content; } } catch (ClientProtocolException e) { e.printStackTrace(); }catch (ConnectTimeoutException e){ log.error("請求連接轉換服務超時!"+e.getMessage()); }catch (HttpHostConnectException e){ log.error("請求連接轉換服務異常!"+e.getMessage()); }catch (IOException e) { e.printStackTrace(); } finally { if (response != null) { try { response.close(); httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } } return ""; }
如果第三方接口中放回的是多個對象,獲取其中的data數據可以用下面的方法
String orgUrl="http://192.168.19.51:8080/system/rest/orgs?systemCode=cyyzsk&token="+token; String orgResponse=HttpUtils.getRemoteData(orgUrl); JSONObject orgParse= JSONArray.parseObject(orgResponse); JSONObject orgData=orgParse.getJSONObject("data");