在Java11中处理POST请求

在Java11中处理POST请求,java,http,post,request,client-server,Java,Http,Post,Request,Client Server,我在使用Java 11嵌入式库Java.net处理POST请求时遇到了一个问题 客户端: 我的QueryGenerator类中有两个方法: publicstringpoststeachers(stringnewteacherslist){ this.customRequest=HttpRequest.newBuilder() .uri(uri.create(“http://“+serverIPport+”/“+postTeachers)) .POST(HttpRequest.bodypublis

我在使用Java 11嵌入式库Java.net处理POST请求时遇到了一个问题

客户端: 我的
QueryGenerator
类中有两个方法:

publicstringpoststeachers(stringnewteacherslist){
this.customRequest=HttpRequest.newBuilder()
.uri(uri.create(“http://“+serverIPport+”/“+postTeachers))
.POST(HttpRequest.bodypublisher.ofString(newTeachersList))
.build();
返回getResponseResults();
}
它用于创建post请求

我还有一个
getResponseResults()
方法

私有字符串getResponseResults(){
字符串结果=null;
试一试{
CompletableFuture response=CustomHttpClientSingleton.getInstance().sendAsync(customRequest,HttpResponse.BodyHandlers.OfsString());
结果=响应。然后应用(HttpResponse::body).join();
}捕获(运行时异常e){
System.out.println(“似乎服务器可能工作不正常!请重新启动”);
}
返回结果;
}
服务器端: 我有一个方法
handlePostRequest

private void handlePostRequest(HttpExchange HttpExchange)引发IOException异常{
Headers=httpExchange.getResponseHeaders();
httpExchange.SendResponseHeader(200,0);
InputStream=httpExchange.getRequestBody();
System.out.println(is.toString());
is.close();
}
我在HttpServer中获得POST请求,但是当我试图显示请求正文的内容时,我没有得到任何信息。我希望收到ArrayList集合的JSON表示,但我得到的唯一输出是:
sun.net.httpserver.fixedLengthinInputStream

有没有办法让http客户端在POST请求中发送请求体,并通过Java 11 Java.net嵌入式库在服务器端使用它


谢谢大家

您必须阅读
Inputstream
内容,而不仅仅是应用
toString()


请参见

您似乎没有正确读取输入流。尝试读取输入流,而不是对其调用toString()。请查收 了解更多信息