2010-01-19 17 views
32

Estoy usando Apache Commons HttpClient PostMethod 3.1.PostMethod setRequestBody (String) obsoleto - ¿por qué?

En la clase PostMethod también hay tres métodos para configurar cuerpo de la petición del método POST:

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

NameValuePair API están en desuso

Los dos primeros métodos. ¿Alguien sabe por qué? Porque si quiero poner un XML para solicitar cuerpo, NameValuePair no me ayuda.

¿Alguien sabe una solución o una solución?

Respuesta

45

el Javadoc dice:

desuso. utilizar setRequestEntity (RequestEntity)

RequestEntity tiene una gran cantidad de los ejecutores, a saber:

ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity

utilice la que más le convenga:

y así sucesivamente.

+0

'StringRequestEntity' no se encuentran en la sugestión. –

3

Sí, así por ejemplo,

post.setRequestEntity(new StringRequestEntity(xml)); 

en lugar de

post.setRequestBody(xml); 
+8

Lamentablemente, el constructor 'StringRequestEntity (String)' también está en desuso. En cambio, deberá usar: 'post.setRequestEntity (new StringRequestEntity (xml," text/xml "," ISO-8859-1 "));' –