2013-02-21 20 views
2

目前我正在測試我們的REST實現。我有這個問題,如果發送404錯誤(如「用戶未找到」),我可以得到正確的HTP標題,但不是頁面的正文/內容。用Grails/Java獲取404的正文

如果我在瀏覽器中調用頁面,我可以看到生成的JSON內容。

URLConnection connection = new URL(url).openConnection() 
    connection.connect() 

    if (connection instanceof HttpURLConnection) { 
     HttpURLConnection httpConnection = (HttpURLConnection) connection 
     int code = httpConnection.getResponseCode() 
     if (code >= 400) { 
      assertTrue("Wrong Error Code", code == 404) 
     } 
    } 

這是我當前的代碼,它工作正常。但是,我如何獲得HTTP響應的正文?

回答

2

你可以得到的含量超出了錯誤流:

def url = 'http://www.google.com/notfound' 

URLConnection connection = new URL(url).openConnection() 
int code = connection.responseCode 
if(code >= 400) { 
    assert code == 404, "Wrong Error Code (expected 404)" 
    println connection.errorStream.text 
} 
1

InputStream is = conn.getInputStream(); String ur = conn.getURL()。toString();

+4

這不是因爲工作,如果我打開網頁(一個404錯誤)的輸入流,我收到了'java.io. FileNotFoundException「(以前曾嘗試過!) – 2013-02-21 09:23:18