Java HttpURLConnection - POST с Cookie
Я пытаюсь отправить запрос на отправку с помощью файлов cookie. Это код:
try {
String query = URLEncoder.encode("key", "UTF-8") + "=" + URLEncoder.encode("value", "UTF-8");
String cookies = "session_cookie=value";
URL url = new URL("https://myweb");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestProperty("Cookie", cookies);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(query);
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String decodedString;
while ((decodedString = in.readLine()) != null) {
System.out.println(decodedString);
}
in.close();
// Send the request to the server
//conn.connect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Проблема заключается в том, что запрос отправляется без файлов cookie. Если я только сделаю:
conn.connect(); и не отправляйте данные, файлы cookie отправляются в порядке.
Я не могу точно проверить, что происходит, потому что соединение является SSL SSL. Я проверяю только ответ.
Ответы
Ответ 1
В соответствии с URLConnection
javadoc:
The following methods are used to access the header fields and the
contents AFTER the connection is made to the remote object:
* getContent
* getHeaderField
* getInputStream
* getOutputStream
Вы подтвердили, что в вашем тестовом случае над запросом уже поступает сервер? Я вижу, что вы звоните connect()
после getOutputStream()
и закомментированы. Что произойдет, если вы раскомментируете его и перейдете до вызова getOutputStream()
?