web-dev-qa-db-ja.com

PostMethod setRequestBody(String)は非推奨-なぜですか?

私はApache Commons HttpClient PostMethod 3.1を使用しています。

PostMethodクラスには、POSTメソッドのリクエスト本文を設定するための3つのメソッドもあります。

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

NameValuePair API

最初の2つの方法は非推奨です。なぜ誰かが知っていますか?リクエスト本文にXMLを入れたい場合、NameValuePairは役に立ちません。

誰かが回避策や解決策を知っていますか?

32
Trick

Javadocは言う:

非推奨。 setRequestEntity(RequestEntity)を使用します

RequestEntityには多くのインプリメンターがあります。

ByteArrayRequestEntity、FileRequestEntity、InputStreamRequestEntity、MultipartRequestEntity、StringRequestEntity

あなたに合ったものを使用してください:

等々。

48
Bozho

はい、例えば、

post.setRequestEntity( new StringRequestEntity( xml ) );

の代わりに

post.setRequestBody( xml );
4
Tony Schwartz