- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
我正在用Java套接字编程编写一个接受GET请求的服务器。首先我创建了一个ServerSocket对象。
ServerSocket serverSocket = new ServerSocket(portNumber);
System.out.println("Server listening on port " + portNumber);
// Listen for incoming connections and handle them in a separate thread
while (true) {
// Accept an incoming connection
Socket clientSocket = serverSocket.accept();
// Create a new thread to handle the request
Thread thread = new Thread(new ClientHandler(clientSocket,roomNames));
thread.start();
}
在ClientHandler(* 它实现Runnable类 *)内部,我得到如下输入和输出流:
@Override
public void run() {
try {
// Get the input and output streams for the socket
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String request;
// Read the incoming request
request= in.readLine();
//Print the request to the console
System.out.println("request is: "+request);
// Parse the request to extract the query string
String[] requestParts = request.split(" ");
String url = requestParts[1];
//print the url to the console
System.out.println("url is: "+url);
String queryString = ""; // continues...}
当我在命令行中使用cURL发出请求时,得到的是:
这是服务器的控制台输出:
***我想要实现的是**获取URL中的参数,并使用它们添加到数组列表中。正如您在后面的图像中所看到的,请求是" GET/reserve?name = Z2115 HTTP/1.1 *"。我只能获取name参数的值,而不能获取day、hour和duration。
1条答案
按热度按时间9wbgstp71#
正如@Stephen C在评论中指出的那样,我需要在curl的开头和结尾加上“(引号)。