PostMethod setRequestBody (String) dépréciée - pourquoi?
-
21-09-2019 - |
Question
J'utilise Apache Commons HttpClient PostMethod 3.1.
Dans la classe PostMethod il y a aussi trois méthodes pour définir le corps de la requête de la méthode POST:
setRequestBody(InputStream body)
setRequestBody(String body)
setRequestBody(NameValuePair[] parametersBody);
NameValuePair API
Les deux premières méthodes sont déconseillés. Est-ce que quelqu'un sait pourquoi? Parce que si je veux mettre un fichier XML pour demander le corps, NameValuePair ne me permet pas.
Est-ce que quelqu'un connaît une solution ou une solution?
La solution
Le javadoc dit:
dépréciée. utiliser setRequestEntity (RequestEntity)
RequestEntity a beaucoup de implementors, à savoir:
ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity
Utilisez celui qui vous convient:
- si votre xml est dans un
String
, utilisez la baliseStringRequestEntity
- si elle est dans un fichier, utilisez le
FileRequestEntity
et ainsi de suite.
Autres conseils
Oui, donc par exemple,
post.setRequestEntity( new StringRequestEntity( xml ) );
au lieu de
post.setRequestBody( xml );