Java HTTP GET 的 InputStream 解码

4

如果你是Java HTTP请求的新手,并且无法解码输入流,请不要担心。由于这是一个简单的GET请求,因此根据这里的建议,您可以使用以下代码:

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

我期望得到一个JSON数据块 - 我需要手动从流中读取每个字节吗?我正在开发Android应用,所以无法使用IOUtils。

首先,您需要决定要使用什么来解析JSON(根据URL猜测格式)。这将确定您是否可以将“InputStream”直接传递给解析器,或者是否需要将数据转换为其他格式(例如“String”)。 - CommonsWare
你可以使用org.json API(http://stleary.github.io/JSON-java/index.html) - erosb
我原本计划使用gson将JSON(字符串)->对象,但实际上我只需要JSON中的一个字段,并且如果有更简单的方法从inputStream中解析出单个字段,我也愿意尝试其他方法。 - David Ferris
1个回答

0
你可以使用org.json APIInputStream创建一个JSONObject,像这样: JSONObject obj = new JSONObject(new JSONTokener(connection.getInputStream())


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接