
- 如图,登陆时,浏览器打开F12查看请求信息
- 在代码中模拟登陆,保存cookie
- 带cookie发请求
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class LoginTest {
public String getCookieStr(String urlPath, String authParams) {
StringBuilder cookieStr = new StringBuilder();
try {
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
// conn.addRequestProperty("Connection", "keep-alive");
conn.addRequestProperty("Content-Type", "application/json");
conn.setRequestMethod("POST");
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.write(authParams.getBytes());
out.flush();
if (conn.getResponseCode() == 200) {
cookieStr.append(conn.getHeaderField("Set-Cookie"));
}
out.close();
conn.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return cookieStr.toString();
}
public StringBuilder sendReqWithCookie(String urlPath, String params, String cookieStr) {
StringBuilder sb = new StringBuilder();
String reqPath;
if (params.length() > 0) {
reqPath = urlPath + "?" + params;
} else {
reqPath = urlPath;
}
try {
URL url = new URL(reqPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
String keystr = cookieStr.split("=")[0];
String valuestr = cookieStr.split("=")[1];
if (cookieStr != null) {
conn.setRequestProperty(keystr, valuestr);
}
conn.connect();
InputStream urlStream = conn.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlStream));
String ss = null;
while ((ss = bufferedReader.readLine()) != null) {
sb.append(ss);
}
bufferedReader.close();
conn.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return sb;
}
public static void main(String[] args) {
String loginurl ="https://test.aaa.com/sso/api/auth/login";
String resumeurl = "https://test.aaa.com/bbb/ccc/info/list";
String authParams = "{\"phoneNumber\":\"11000020202\",\"password\":\"123456\"}";
String queryStr = "page=1&pageSize=20&status=99";
LoginTest login = new LoginTest();
String cookieStr = login.getCookieStr(loginurl, authParams);
System.out.println(cookieStr);
if (cookieStr!=null && !cookieStr.equals(""))
System.out.println(login.sendReqWithCookie(resumeurl, queryStr, cookieStr).toString());
}
}
``