2016-02-18 39 views
0

對Java HTTP請求不熟悉,並且無法理清如何解碼輸入流。這是一個簡單的GET,所以按照此建議,我用下面的代碼:對Java HTTP GET的InputStream進行解碼

public void setupIPCheck() throws IOException { 
    URLConnection connection = new URL("http://freegeoip.net/json/").openConnection(); 
    InputStream response = connection.getInputStream(); 
    Log.d("IPcheck", response.toString()); 
} 

我期待一個JSON BLOB - 我必須讀取手動流的每個字節?我爲Android開發,所以我不能使用IOUtils。

+0

首先,你需要決定你要使用解析您的JSON(基於URL猜測格式)是什麼。這將決定您是否可以將InputStream交給解析器,或者是否需要將數據轉換爲其他格式(例如String)。 – CommonsWare

+0

您可以使用org.json API(http://stleary.github.io/JSON-java/index.html) – erosb

+0

我打算使用[gson](https://github.com/google/gson)從JSON(字符串) - >對象,但我真的只需要JSON中的一個字段,如果有更簡單的方法從inputStream中解析出單個字段,它會願意做一些不同的事情。 –

回答

0

可以使用org.json API從一個InputStream創建JSONObject,像這樣: JSONObject obj = new JSONObject(new JSONTokener(connection.getInputStream())