PostMethod setRequestBody (String) устарел - почему? - PullRequest
32 голосов
/ 19 января 2010

Я использую Apache Commons HttpClient PostMethod 3.1.

В классе PostMethod есть также три метода для установки тела запроса метода POST:

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

NameValuePair API

Первые два метода устарели. Кто-нибудь знает почему? Потому что, если я хочу поместить XML в тело запроса, NameValuePair мне не поможет.

Кто-нибудь знает обходной путь или решение?

Ответы [ 2 ]

48 голосов
/ 19 января 2010

Джавадок говорит:

Запрещены. использовать setRequestEntity (RequestEntity)

RequestEntity имеет много разработчиков, а именно:

ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity

Используйте тот, который подходит вам:

  • если ваш xml находится в String, используйте StringRequestEntity
  • , если он находится в файле, используйте FileRequestEntity

и т. Д.

4 голосов
/ 07 марта 2011

Да, например,

post.setRequestEntity( new StringRequestEntity( xml ) );

вместо

post.setRequestBody( xml );
...