Java 如何修复此方法以不丢失JSON字符串
这听起来很奇怪,但是这种方法对于get/most POST请求很有效,但是有时候(通常是最近)StringBuffer不会捕获附加在http请求(JSON)末尾的数据。我哪里做错了Java 如何修复此方法以不丢失JSON字符串,java,http,Java,Http,这听起来很奇怪,但是这种方法对于get/most POST请求很有效,但是有时候(通常是最近)StringBuffer不会捕获附加在http请求(JSON)末尾的数据。我哪里做错了 /** * Parses a client request and calls the appropriate handler * @throws Exception */ private void processClientRequest() throws Exception{
/**
* Parses a client request and calls the appropriate handler
* @throws Exception
*/
private void processClientRequest() throws Exception{
//Get the client request
BufferedReader clientRequest = new BufferedReader(new InputStreamReader(connectedClient.getInputStream()));
//Start response object
DataOutputStream responseToClient = new DataOutputStream(connectedClient.getOutputStream());
System.out.println(clientRequest);
String requestString = clientRequest.readLine();
String header = requestString;
//Break up request
StringTokenizer tokenizer = new StringTokenizer(header);
//Different request parts
String httpMethod = tokenizer.nextToken();
String httpQueryString = tokenizer.nextToken();
//Print client request
StringBuffer responseBuffer = new StringBuffer();
while (clientRequest.ready()) {
responseBuffer.append(requestString + " ");
System.out.println(requestString);
requestString = clientRequest.readLine();
}
//Process GET request
if (httpMethod.equals("GET")) {
processGETRequests(httpQueryString, requestString);
}else if (httpMethod.equals("POST")) {
processPOSTRequests(responseBuffer, httpQueryString);
}
}
仔细阅读文档以了解更多信息 我认为你的问题是:
while (clientRequest.ready()) {
如果流还没有数据(如果客户端发送的数据慢于服务器处理的数据),则您没有等待客户端发送数据