Мне нужно получить готовый набор ie, установленный после POST-запроса к серверу (успешный запрос входа в систему).
В Почтальоне я могу видеть заголовок ответа, но также и куки-файлы ответа. В своем коде я могу получить те же заголовки ответа, но я не уверен, как получить нужные мне файлы cookie.
Вот мой код:
public void sendPost(String url, String postParams) throws Exception {
URL obj = new URL(url);
conn = (HttpURLConnection) obj.openConnection();
// Acts like a browser
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("User-Agent", "Mozilla/5.0"); // mock a web browser
conn.setRequestProperty(
"Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
conn.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
for (String cookie : this.cookies) {
conn.addRequestProperty("Cookie", cookie.split(";", 1)[0]);
}
conn.setRequestProperty("Connection", "keep-alive");
conn.setRequestProperty("Referer", "https://accounts.google.com/ServiceLoginAuth");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", Integer.toString(postParams.length()));
conn.setDoOutput(true);
conn.setDoInput(true);
// Send post request
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(postParams);
wr.flush();
wr.close();
Map<String, List<String>> headerFields = conn.getHeaderFields();
// !!!! got header files -> now try to get cookies some way !!!
List<String> cookies = headerFields.get("Set-Cookie"); // ---> null
int responseCode = conn.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + postParams);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
Метод работает нормально и получает ожидаемые заголовки каждый раз, как это делает Почтальон:
Как мне получить "Cook ie value" из моего Java метода?