java:Tomcat 9状态代码200但响应消息为null

时间:2016-11-10 07:32:27

标签: java rest http tomcat

我有一个http客户端,它向RESTful Web服务发送请求并收到响应。它在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

     

1 个答案:

答案 0 :(得分:4)

根据tomcat报道的问题,他们已停止发送" Reason Phrase"从tomcat 8.5版开始。

https://bz.apache.org/bugzilla/show_bug.cgi?id=60183