2010-01-19 67 views
32

我使用Apache Commons HttpClient PostMethod 3.1。PostMethod setRequestBody(String)已棄用 - 爲什麼?

在的PostMethod類也有三種方法來設置POST方法的請求體:

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

NameValuePair API

前兩種方法已被棄用。有人知道爲什麼嗎?因爲如果我想要一個XML來請求正文,NameValuePair不會幫助我。

有沒有人知道解決方法或解決方案?

回答

45

的Javadoc說:

已過時。使用setRequestEntity(RequestEntity)

RequestEntity有很多執行者,即:

ByteArrayRequestEntity,FileRequestEntity,InputStreamRequestEntity,MultipartRequestEntity,StringRequestEntity

使用適合您的一種:

等。

+0

'StringRequestEntity'不建議找到。 – 2014-08-28 12:22:21

3

是,因此,例如,

post.setRequestEntity(new StringRequestEntity(xml)); 

,而不是

post.setRequestBody(xml); 
+8

不幸的是,構造函數'StringRequestEntity(String)'現在也被棄用了。相反,你必須使用:'post.setRequestEntity(new StringRequestEntity(xml,「text/xml」,「ISO-8859-1」));' – 2012-04-23 21:12:42

相關問題