2010-01-19 121 views
32

我使用Apache Commons HttpClient PostMethod 3.1。PostMethod setRequestBody(String)已弃用 - 为什么?

在的PostMethod类也有三种方法来设置POST方法的请求体:

setRequestBody(InputStream body) 
setRequestBody(String body) 
setRequestBody(NameValuePair[] parametersBody); 

NameValuePair API

前两种方法已被弃用。有人知道为什么吗?因为如果我想要一个XML来请求正文,NameValuePair不会帮助我。

有没有人知道解决方法或解决方案?

回答

45

的Javadoc说:

已过时。使用setRequestEntity(RequestEntity)

RequestEntity有很多执行者,即:

ByteArrayRequestEntity,FileRequestEntity,InputStreamRequestEntity,MultipartRequestEntity,StringRequestEntity

使用适合您的一种:

等。

+0

'StringRequestEntity'不建议找到。 – 2014-08-28 12:22:21

3

是,因此,例如,

post.setRequestEntity(new StringRequestEntity(xml)); 

,而不是

post.setRequestBody(xml); 
+8

不幸的是,构造函数'StringRequestEntity(String)'现在也被弃用了。相反,你必须使用:'post.setRequestEntity(new StringRequestEntity(xml,“text/xml”,“ISO-8859-1”));' – 2012-04-23 21:12:42

相关问题