2012-05-23 38 views
0

我有一個客戶端使用http POST方法發佈一些數據到我們的服務器。我們的服務器是使用java的resin 3.0。當我發送響應是否保存數據時,響應的內容長度未設置。客戶端正在使用curl庫(PHP包裝它),他們正在接收的內容長度爲0.當我嘗試通過瀏覽器提交表單到我們的服務器在相同的網址它的作品和響應顯示。樹脂3.0中的http post響應中的內容長度爲0

我試圖使用Apache HttpClient通過postmethod提交數據,我收到的內容長度爲-1,但我確實得到了完整的響應。我無法理解問題出在哪裏。我也做了一些google,發現樹脂在發送響應時做了一些分塊編碼。但我想這也適用於GET方法。但對於GET方法,我的客戶端正在獲取內容長度並能夠獲得響應。需要幫助。

回答

0

Content-Length」是響應中的標題,它警告客戶端響應的大小。這不是流的實際長度。

您可以使用response.setContentLength(...)來設置它的值;在你的Servlet中。

+0

手動設置內容長度時,出現錯誤IllegalStateException'嘗試寫入內容長度爲30036的'30052'字節。有沒有關於樹脂分塊編碼的問題? – Shwetanka

+0

使用「分塊」傳輸編碼時,必須根據應用的任何傳輸編碼調整內容長度值。 –