web-dev-qa-db-fra.com

PostMethod setRequestBody (String) déconseillé - pourquoi?

J'utilise Apache Commons HttpClient PostMethod 3.1.

Dans la classe PostMethod, il existe également trois méthodes pour définir POST:

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

NameValuePair API

Les deux premières méthodes sont obsolètes. Est-ce que quelqu'un sait pourquoi? Parce que si je veux mettre un XML pour demander le corps, NameValuePair ne m'aide pas.

Quelqu'un connaît-il une solution de contournement ou une solution?

32
Trick

Le javadoc dit:

Obsolète. utilisez setRequestEntity (RequestEntity)

RequestEntity a beaucoup d'implémenteurs, à savoir:

ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity

Utilisez celui qui vous convient:

etc.

48
Bozho

Oui, par exemple,

post.setRequestEntity( new StringRequestEntity( xml ) );

au lieu de

post.setRequestBody( xml );
4
Tony Schwartz