PostMethod setRequestBody (String) deprecato - perché?
-
21-09-2019 - |
Domanda
Sto usando Apache Commons HttpClient PostMethod 3.1.
Nella classe PostMethod ci sono anche tre metodi per l'impostazione corpo della richiesta del metodo POST:
setRequestBody(InputStream body)
setRequestBody(String body)
setRequestBody(NameValuePair[] parametersBody);
NameValuePair API
I primi due metodi sono obsoleti. Fa qualcuno sa perché? Perché se voglio mettere un XML per richiedere il corpo, NameValuePair non mi aiuta.
Fa qualcuno sa di una soluzione o una soluzione?
Soluzione
Il javadoc dice:
deprecato. utilizzare setRequestEntity (RequestEntity)
RequestEntity ha un sacco di implementatori, vale a dire:
ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity
Utilizzare quello che fa per voi:
- se il vostro XML è in un
String
, utilizzare ilStringRequestEntity
- se è in un file, utilizzare il
FileRequestEntity
e così via.
Altri suggerimenti
Sì, quindi, ad esempio,
post.setRequestEntity( new StringRequestEntity( xml ) );
anziché
post.setRequestBody( xml );