使用Postman发送请求时客户端连接两次?

问题描述 投票:0回答:1

我正在尝试使用 Sockets 在 Java 中创建一个服务器。我使用

ServerSocket serverSocket = new ServerSocket(port);
创建一个 ServerSocket,然后尝试使用
Socket clientSocket = serverSocket.accept();
进行连接。我通过 Postman 发送请求。

我的问题是,每当我发送请求时,我都会得到输出:

New client connected
input: null
closed!
New client connected
input: PUT / HTTP/1.1
closed!

我很困惑为什么客户端连接两次,以及为什么第一个请求总是空。

完整代码:

ServerSocket serverSocket = new ServerSocket(port);

while (true) {
                Socket clientSocket = serverSocket.accept();
                System.out.println("New client connected");

                BufferedReader br = new BufferedReader(new InputStreamReader((clientSocket.getInputStream())));

                String input = br.readLine();
                System.out.println("input: " + input);

                clientSocket.close();
                System.out.println("closed!");
}
java postman serversocket
1个回答
0
投票

复制评论:

这对于 Postman 和 Socket 连接来说是正常的 - 在使用 Postman 作为 ServerSocket 时也有同样的问题(我基本上只是为其做了一些虚拟逻辑,如果 body 为 null,这意味着 postman 的第一个连接返回空响应)。如果你不想要这种行为,只需使用curl或其他东西

您要么必须添加逻辑来处理 Postman 建立的奇怪的虚拟连接,要么使用更好的工具来完成这项工作 - 比如curl。

© www.soinside.com 2019 - 2024. All rights reserved.