Java HttpsURLConnection setRequestProperty эквивалент в PrintWriter
Это всего лишь упражнение. Мне интересно, если есть эквивалент этого кода:
String https_url = "https://api.ciscospark.com/v1/rooms";
URL url = new URL(https_url);
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
connection.setRequestProperty("Authorization", "I3MDUtMmEy");
connection.setDoOutput(true);
Я думал, что можно было бы сделать что-то вроде:
String https_url = "https://api.ciscospark.com/v1/rooms";
URL url = new URL(https_url);
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.setDoOutput(true);
PrintWriter pw = new PrintWriter(connection.getOutputStream());
pw.println("GET /v1/rooms HTTP/1.1");
pw.println("Host: https://api.ciscospark.com");
pw.println("Content-Type: application/json; charset=utf-8");
pw.println("Authorization: I3MDUtMmEy");
pw.println("");
но я получаю сообщение об ошибке аутентификации от сервера, который вернул код ответа HTTP: 401 для URL: https://api.ciscospark.com/v1/rooms401 Учетные данные для проверки подлинности отсутствовали или были неверными. Могу ли я использовать принтер для работы? А если нет, то почему? Спасибо
1 ответ
Я попробовал с:
private static void useSslSocket() throws IOException {
final SocketFactory socketFactory = SSLSocketFactory.getDefault();
String ipAddr = InetAddress.getByName("api.ciscospark.com").toString();
System.out.println("IP: "+ipAddr);
try (final Socket socket = socketFactory.createSocket("api.ciscospark.com", 80)) {
final String request = "GET / HTTP/1.1\r\nConnection: close\r\nHost:stackru.com\r\n\r\n";
PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.println("GET /v1/rooms HTTP/1.1");
pw.println("Host: https://api.ciscospark.com");
pw.println("Content-Type: application/json; charset=utf-8");
pw.println("Authorization: I3MDUtMmEy");
pw.println("");
// pw.flush();
// pw.close();
final InputStream inputStream = socket.getInputStream();
final String response = readAsString(inputStream);
System.out.println(response);
}
}
ответ javax.net.ssl.SSLException: нераспознанное сообщение SSL, текстовое соединение?