0
我正在学习Java套接字。我试图发送一个HTTPS GET请求给Facebook,像这样:如何通过套接字发送HTTPS请求?
String request = "GET/HTTP/1.0\r\n"
+ "Host: www.facebook.com\r\n"
+ "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\r\n"
+ "Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7\r\n"
+ "Accept-Language: de,en;q=0.7,en-us;q=0.3\r\n"
+ "Accept-Encoding: gzip\r\n"
+ "Connection: close\r\n\r\n";
byte[] Outdata = request.getBytes();
Socket server = new Socket("www.facebook.com", 443);
DataOutputStream outputStream = new DataOutputStream(server.getOutputStream());
outputStream.write(Outdata);
outputStream.flush();
然后,我尝试从服务器侦听收到的数据,这样的:
DataInputStream inputStream =
new DataInputStream(server.getInputStream());
byte[] InData = new byte[1024];
while (true) {
inputStream.read(InData);
String data = new String(InData, StandardCharsets.UTF_8);
System.out.println(data);
}
但我不从服务器获取任何返回数据。为什么?
如果你想谈论SSL/HTTPS,你可能想要一个['SSLSocket'](https://docs.oracle.com/javase/7/docs/api/javax/net/ssl/SSLSocket的.html)。 –