當上sessionId請求需要登錄的頁面,獲取第三方重定向的地址並且獲取地址中的參數code

/** * 授權獲取頭條code * @return */ @GetMapping("/authorize") public void authorize(String phone,JSONObject json) throws Exception{ String url = "https://open.snssdk.com/auth/authorize"; String param = "response_type=code&client_key="+client_key+"&redirect_uri="+redirect_uri+"&auth_only=1&mobile_only=1"; JSONObject data = JSONUtil.parseObj(json.get("data")); String session_key = data.getStr("session_key");//登錄後返回的session URL urls = new URL(url+"?"+param); HttpURLConnection con = (HttpURLConnection) urls.openConnection(); con.setRequestMethod("GET"); con.setRequestProperty("Cookie", "sessionid="+session_key); con.connect(); String code=null; if(con.getResponseCode() == 302){//302是重定向狀態 String rurl = con.getHeaderField("Location"); log.info("重定向地址:{}",rurl); String pram = rurl.split("[?]")[1]; code = pram.split("[=]")[1]; } con.disconnect();// 斷開連接 if(code!=null){saveInfo(code,phone,data);}else{throw new BusinessException("獲取重定向地址code失敗!");} }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章