Java 为什么对Grizzly HTTP服务器的POST请求主体不完整?
我正在使用Grizzly HTTP服务器(Grizzly-comet-server-2.2.1.jar)。HTTP请求由Java 为什么对Grizzly HTTP服务器的POST请求主体不完整?,java,http,post,grizzly,Java,Http,Post,Grizzly,我正在使用Grizzly HTTP服务器(Grizzly-comet-server-2.2.1.jar)。HTTP请求由org.glassfish.grizzly.HTTP.server.HttpHandler的后代处理。有时(似乎是随机的)使用Request参数调用方法service(Request-Request,Response-Response),其中content-length头的值与接收到的帖子正文的实际长度不同: request.getInputStream().available
org.glassfish.grizzly.HTTP.server.HttpHandler
的后代处理。有时(似乎是随机的)使用Request
参数调用方法service(Request-Request,Response-Response)
,其中content-length头的值与接收到的帖子正文的实际长度不同:
request.getInputStream().available() < request.getContentLength().
处理程序本身
public class MyHttpHandler extends HttpHandler {
protected static Logger log = Logger.getLogger(MyHttpHandler.class);
public void service(Request
request, Response
response) throws Exception {
if (request.getInputStream().available() != request.getContentLength()) {
log.error("broken content section: only " + request.getInputStream().available() + " of " +
request.getContentLength() + "bytes.");
}
response.setContentLength(0);
response.getWriter().write("");
}
}
Grizzly服务器正常。看到答案了吗
public class MyHttpHandler extends HttpHandler {
protected static Logger log = Logger.getLogger(MyHttpHandler.class);
public void service(Request
request, Response
response) throws Exception {
if (request.getInputStream().available() != request.getContentLength()) {
log.error("broken content section: only " + request.getInputStream().available() + " of " +
request.getContentLength() + "bytes.");
}
response.setContentLength(0);
response.getWriter().write("");
}
}