使用URLConnection套接字刷新触发多个请求

时间:2017-06-11 22:08:49

标签: java sockets urlconnection

这里有什么问题?我想在一个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();

1 个答案:

答案 0 :(得分:1)

你不能。 URLConnection用于HTTP,这是一种无状态协议。不适用于您自己的有状态消息传递协议。一个请求和一个响应。如果您要发送其他消息,请获取新的URLConnection。连接池可能会在幕后发生。

您还需要阅读回复。仅仅获取输入流是不够的,多次获取它是毫无意义的。

很难理解为什么要在请求中写"Response"