Search code examples
javarequestapache-commons-httpclient

PostMethod setRequestBody(String) deprecated - why?


I am using Apache Commons HttpClient PostMethod 3.1.

In the PostMethod class there are also three methods for setting POST method's request body:

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

NameValuePair API

First two methods are deprecated. Does anybody knows why? Because if I want to put an XML to request body, NameValuePair does not help me.

Does anybody knows an workaround or a solution?


Solution

  • The javadoc says:

    Deprecated. use setRequestEntity(RequestEntity)

    RequestEntity has a lot of implementors, namely:

    ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity

    Use the one that suits you:

    and so on.