2014-10-05 79 views
0

試圖找出我需要做的下一步。從URL到JSON到字符串(JAVA)

我已經打開了流,緩衝了它,但我真的不知道如何使用該BufferedReader併發送我的方法'createFacebookCoverObject'來分析一個字符串。感謝您的幫助..

 public void testCreateFavebookCoverObject() throws Exception { 
    System.out.println("createFavebookCoverObject"); 
    String url = "https://graph.facebook.com/19292868552/"; 
    InputStream is = new URL(url).openStream(); 
    BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); 
    FacebookCover instance = new FacebookCover(); 
    FacebookCover result = instance.createFacebookCoverObject(url);//this is where I get stuck 
} 
+0

你想從'BufferedReader'輸入幹什麼?你知道這個輸入是什麼格式嗎? – 2014-10-05 03:38:42

+0

我只是想從網站中拉出JSON,沒有HTML。 – TheCrownedPixel 2014-10-05 15:17:35

+0

最有可能的迴應只包含JSON而不是HTML。但是,響應仍然必須符合HTTP規範。這意味着原始響應數據具有您需要解析的HTTP標頭信息。 – 2014-10-05 22:11:50

回答

1

BufferedReader有讀取方法(我認爲readLine),將返回輸入流作爲字符串。你可以調用這個來獲得整個響應。這可能不是你想要的。爲什麼?因爲響應將包含HTTP標頭和一個正文。大概你只對身體很感興趣,你可能會發現JSON字符串。

我建議使用一個HTTP API來解析你的響應。幾個選項包括:

  1. Apache HTTP客戶端 - 注意這是第三方。
  2. Java的HTTPURLConnection應該做的伎倆。下面的帖子有示例代碼:

How can I get an http response body as a string in Java?

+0

啊好的HTTPURLConnection是好的,但是,我得到'IOUtils.toString(在,編碼)的錯誤;'它說我不允許傳遞參數,但顯然我應該也可以。 – TheCrownedPixel 2014-10-05 19:19:26

+0

@TheCrownedPixel什麼是**精確**錯誤信息?你使用的是哪個版本的HTTPURLConnection? – 2014-10-05 22:14:13