PostMethod setRequestBody(String)已弃用 - 为什么?

时间:2010-01-19 09:38:23

标签: java request apache-commons-httpclient

我正在使用Apache Commons HttpClient PostMethod 3.1。

在PostMethod类中,还有三种设置POST方法请求体的方法:

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

NameValuePair API

不推荐使用前两种方法。有人知道为什么吗?因为如果我想将XML放到请求体中,NameValuePair对我没有帮助。

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

2 个答案:

答案 0 :(得分:48)

javadoc说:

  

已过时。使用setRequestEntity(RequestEntity)

RequestEntity有很多实现者,即:

  

ByteArrayRequestEntity,FileRequestEntity,InputStreamRequestEntity,MultipartRequestEntity,StringRequestEntity

使用适合你的那个:

等等。

答案 1 :(得分:4)

是的,例如,

post.setRequestEntity( new StringRequestEntity( xml ) );

而不是

post.setRequestBody( xml );