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

Tri*_*ick 32 java request apache-commons-httpclient

我正在使用Apache Commons HttpClient PostMethod 3.1.

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

setRequestBody(InputStream body)
setRequestBody(String body)
setRequestBody(NameValuePair[] parametersBody);
Run Code Online (Sandbox Code Playgroud)

NameValuePair API

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

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

Boz*_*zho 48

javadoc说:

已过时.使用setRequestEntity(RequestEntity)

RequestEntity有很多实现者,即:

ByteArrayRequestEntity,FileRequestEntity,InputStreamRequestEntity,MultipartRequestEntity,StringRequestEntity

使用适合你的那个:

等等.


小智 5

是的,例如

post.setRequestEntity( new StringRequestEntity( xml ) );
Run Code Online (Sandbox Code Playgroud)

代替

post.setRequestBody( xml );
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,构造器`StringRequestEntity(String)`现在也已被弃用。相反,您必须使用:`post.setRequestEntity(new StringRequestEntity(xml,“ text / xml”,“ ISO-8859-1”));` (10认同)