2010-01-19 5 views
32

Sto usando Apache Commons HttpClient PostMethod 3.1.PostMethod setRequestBody (String) deprecato - perché?

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

primi due metodi sono obsoleti. Qualcuno sa perché? Perché se voglio mettere un XML per richiedere il corpo, NameValuePair non mi aiuta.

Qualcuno conosce una soluzione alternativa o una soluzione?

risposta

45

JavaDoc dice:

obsolete. utilizzare setRequestEntity (RequestEntity)

RequestEntity ha un sacco di implementatori, vale a dire:

ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity

Utilizzare quello che fa per voi:

e così via.

+0

'StringRequestEntity' non si trovano in Suggerimento. –

3

Sì, così per esempio,

post.setRequestEntity(new StringRequestEntity(xml)); 

invece di

post.setRequestBody(xml); 
+8

Purtroppo anche il costruttore 'StringRequestEntity (String)' è deprecato. Invece dovrai usare: 'post.setRequestEntity (new StringRequestEntity (xml," text/xml "," ISO-8859-1 "));' –