2012-01-16 46 views
0

我正在使用Restlet實現Restful Web服務 - 我還沒有找到打印HTTP請求內容的方法。我需要檢查HTTP請求的內容,要得到這樣的:打印Restlet Web服務請求的內容

POST http://localhost:8080/students

<Student> 
<name>Tony<name/> 
<age>19<age/> 
<Student/> 

我發送使用下面的代碼

ClientResource c = new CLientResource(url); 
c.post(student, Student.Class); 

自定義對象的服務器資源我試圖通過wireshark獲取HTTP請求,但沒有找到任何http請求,我只找到TCP連接。

任何人都知道如何在客戶端或服務器端打印http請求的內容?

回答

0

您可以使用在客戶端執行以下操作:

clientResource.getResponseEntity().getText(); 

根據JavaDoc:

的表示形式轉換爲字符串值。在使用 這種方法時要小心,因爲將大內容轉換爲完全存儲在內存中的字符串 可能會導致OutOfMemoryErrors被拋出。

順便說一句,HTTP請求是TCP連接。

+0

我知道Http請求是tcp連接,但通常wireshark將http請求標識爲Http而不是TCP,並且您可以讀取請求內容,但restlet請求不是這種情況。我試過你的代碼,但它返回null – 2012-01-16 15:54:01

+0

我沒有問題使用wireshark觀看我的請求的有效載荷。你確定在客戶端和服務器之間有任何XML有效載荷,因爲上面的代碼對我來說工作得很好。 – koma 2012-01-16 19:49:02

+0

也許你有SOP問題(http://en.wikipedia.org/wiki/Same_origin_policy)。在這些情況下通常不會收到任何東西。您的客戶端是否在瀏覽器中運行? – koma 2012-01-16 20:04:14