登录网站获取session
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
import java.util.HashMap;
import java.util.Map;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.Connection.Method;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Repository;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@Repository
public class GetSession {
public static String session;
public String getSession() {
String sessionId;
try {
//请求需要的参数
String param = "{\"header\":{\"agent\":\"gh\",\"version\":\"1.0\",\"device\":\"\",\"platform\":\"\",\"locale\":\"CN\",\"ext\":\"0\" },\"request\":{\"method\":\"getApplicationGridLogin_SENSOR\",\"params\":{\"uID\":\"admin\",\"pwd\":\"admin\",\"luID\":\"xxx\",\"userName\":\"xxx\",\"password\":\"xxx\",\"type\":\"1\",\"param1\":null,\"telephone\":null,\"menuCode\":\"SYNTHESIZE\",\"macAddress\":\"4RQTKsj5rhpfZXir\"}}}";
//伪装请求头
Map<String,String> headerMap = new HashMap<String, String>();
headerMap.put("Host", "xxx");
headerMap.put("Connection", "keep-alive");
headerMap.put("Content-Length", "341");
headerMap.put("Accept", "application/json, text/javascript, */*; q=0.01");
headerMap.put("Origin", "xxx");
headerMap.put("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Mobile Safari/537.36");
headerMap.put("Content-Type", "application/json; charset=UTF-8");
headerMap.put("Referer", "xxx");
headerMap.put("Accept-Encoding", "gzip, deflate");
headerMap.put("Accept-Language", "zh-CN,zh;q=0.9");
Connection.Response res =
Jsoup.connect("xxx")
.method(Method.POST)
.headers(headerMap)
.requestBody(param)
.ignoreContentType(true)
.execute();
com.alibaba.fastjson.JSONObject parseObject = JSON.parseObject(res.body());//获取的json格式的字符串需要转为json对象
Object object = parseObject.get("response");
com.alibaba.fastjson.JSONObject parseObject1 = JSON.parseObject(object.toString());
JSONObject parseObject2 = JSON.parseObject(parseObject1.get("result").toString());
sessionId=parseObject2.get("sessionId").toString();
session=parseObject2.get("sessionId").toString();
session="\""+session+"\"";
return sessionId;
}catch(Exception e){
e.printStackTrace();
return null;
}
}
}