Java: Tomcat 9状态码为200,但响应消息为空。

6
我有一个HTTP客户端可以向RESTful网络服务发送请求并接收响应。在Tomcat 8部署时,它可以顺利工作。但是,当我尝试在Tomcat 8.5及以上版本中部署相同的客户端和服务器时,服务器会收到响应代码200,但响应消息为空,而不是OK。下面是我的客户端代码片段。
        httpclient = HttpClientBuilder.create().build();
        postrequest.setEntity(new UrlEncodedFormEntity(urlParameters));
        HttpResponse response = httpclient.execute(postrequest);
        
        HttpEntity entity = response.getEntity();
        System.out.println("Response from server ");
        System.out.println(response.getStatusLine().getStatusCode());
        System.out.println(response.getStatusLine().getReasonPhrase());

我的服务器响应代码片段如下:

@POST
@Path("/download/{filename}")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getFile(@PathParam("filename") String file)
{
    try
    {               
        File downloadfile = new File("/home/upload/"+file);

        ResponseBuilder response = Response.ok((Object) downloadfile);
        response.header("Content-Disposition", downloadfile.getName());
        
        return response.build();
            
    }
    catch(Exception e)
    {
        logger.error("Error is : "+e);
        e.printStackTrace();
    }
    
    
}

我得到的输出只是

来自服务器的响应

200

实际上应该是

来自服务器的响应

200

OK

1个回答

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接