當上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失敗!");}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.