如何知道返回哪种类型的HttpEntity

时间:2014-05-02 05:55:27

标签: java apache http httpclient apache-httpclient-4.x

我正在使用4.3.3版本的Apache HttpClient API。 当我执行以下语句时,它返回HttpResponse实例。

HttpResonse response = httpClient.execute(httpRequest);

执行以下语句以获取响应实体。

HttpEntity entity = response.getEntity();

这里我想知道返回哪种类型的实体对象。例如:StringEntity,FileEntity,InputStreamEntity,...

我尝试了以下操作,但它返回ResponseEntityWrapper

String className = entity.getClass().getName();

有没有办法知道响应实体的具体类型?

1 个答案:

答案 0 :(得分:0)

您不会直接从实体获取Java对象,其内容更像是由其mime类型指定的内容,您可以使用entity.getContentType().getValue()获取(只要指定了内容类型,否则您显然会得到一个NullPointerException)。

内容类型是一个字符串,如" text / plain"或" text / html"。例如,如果你得到一个" application / json"内容类型,那么你需要使用"解串器" (如Gson或Jackson)和entity.getInputStream()作为该反序列化器的输入。