我需要通过setEntity(…)方法将ByteArrayRequestEntity
设置为HttpPost
对象上的实体,该方法期望HttpEntity
作为参数。通过Netbeans提示,我将ByteArrayRequestEntity
转换为HttpEntity
,但我不确定为什么这是允许的。HttpEntity
是一个接口,我不确定ByteArrayRequestEntity
实现了该接口的所有方法(或者如果它需要)。有人能澄清一下这是允许的铸造吗?
你不能将ByteArrayRequestEntity转换为HttpEntity,但你应该能够从它创建一个:
new ByteArrayRequestEntity(yourEntity.getContent())
真正的问题是你混合了库。ByteArrayRequestEntity来自过时的HttpClient 3。而HttpEntity来自新的HttpComponents库,所以它们不直接兼容。如果可能的话,你应该把所有东西都切换到HttpComponents。
做些调查总无妨,对吧?
根据Apache HTTP组件文档,ByteArrayRequestEntity
实现了RequestEntity
接口,而不是HttpEntity