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

2022-09-01 07:37:37

我正在使用Apache Commons HttpClient PostMethod 3.1。

在 PostMethod 类中,还有三种方法用于设置 POST 方法的请求正文:

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

名称值对API

前两种方法已弃用。有人知道为什么吗?因为如果我想放一个XML来请求正文,NameValuePair对我没有任何帮助。

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


答案 1

javadoc 说:

荒废的。使用 setRequestEntity(RequestEntity)

RequestEntity 有很多实现器,即:

ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity

使用适合您的那个:

等等。


答案 2

是的,例如,

post.setRequestEntity( new StringRequestEntity( xml ) );

而不是

post.setRequestBody( xml );

推荐