PostMethod setRequestBody (String) устарел – почему?
-
21-09-2019 - |
Вопрос
Я использую Apache Commons HttpClient PostMethod 3.1.
В классе PostMethod также есть три метода для установки тела запроса метода POST:
setRequestBody(InputStream body)
setRequestBody(String body)
setRequestBody(NameValuePair[] parametersBody);
ИмяЗначениеПара API
Первые два метода устарели.Кто-нибудь знает, почему?Потому что, если я хочу поместить XML в тело запроса, NameValuePair мне не поможет.
Кто-нибудь знает обходной путь или решение?
Решение
Javadoc говорит:
Устарело.используйте setRequestEntity (RequestEntity)
RequestEntity имеет множество разработчиков, а именно:
ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity
Используйте тот, который вам подходит:
- если ваш XML находится в
String
, использоватьStringRequestEntity
- если он находится в файле, используйте
FileRequestEntity
и так далее.
Другие советы
Да, так, например,
post.setRequestEntity( new StringRequestEntity( xml ) );
вместо
post.setRequestBody( xml );
Не связан с StackOverflow