将ByteArrayRequestEntity的转换解释为HttpEntity

时间:2014-08-19 14:48:34

标签: java casting httpentity

我需要通过setEntity(...)方法在ByteArrayRequestEntity对象上设置HttpPost作为实体,该方法需要HttpEntity作为参数。通过Netbeans提示,我将ByteArrayRequestEntity转换为HttpEntity,但我不确定为什么这是允许的。 HttpEntity是一个接口,我不确定ByteArrayRequestEntity是否实现了该接口的所有方法(或者如果需要)。任何人都可以澄清这是一个允许的演员吗?

2 个答案:

答案 0 :(得分:0)

您不能将ByteArrayRequestEntity强制转换为HttpEntity,但您应该可以从中创建一个:

new ByteArrayRequestEntity(yourEntity.getContent())

真正的问题是你在混合图书馆。 ByteArrayRequestEntity来自过时的HttpClient 3.x library,而HttpEntity来自新的HttpComponents library,因此它们不是直接兼容的。如果可能,您应该将所有内容切换到HttpComponents。

答案 1 :(得分:-2)

做一些调查没有坏处,对吗?

根据Apache HTTP Components文档,ByteArrayRequestEntity实现了界面RequestEntity,而不是HttpEntity