这里有什么问题?我想在一个https连接中使用URLConnection发送多条消息。我只收到服务器上的第一条消息。
URL url = new URL("https://example.com:443");
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(connection.getOutputStream()));
out.write("Hello");
out.flush();
inReader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
out.write("Response");
out.flush();
inReader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
out.write("Response2");
out.flush();
inReader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
out.write("Response3");
out.flush();
inReader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
inReader.close();
out.close();
答案 0 :(得分:1)
你不能。 URLConnection
用于HTTP,这是一种无状态协议。不适用于您自己的有状态消息传递协议。一个请求和一个响应。如果您要发送其他消息,请获取新的URLConnection
。连接池可能会在幕后发生。
您还需要阅读回复。仅仅获取输入流是不够的,多次获取它是毫无意义的。
很难理解为什么要在请求中写"Response"
。