为Java HTTP GET解码输入流
不熟悉JavaHTTP请求,并且无法确定如何解码输入流。这是一个简单的GET,因此根据这里的建议,我使用以下代码:为Java HTTP GET解码输入流,java,android,http,get,inputstream,Java,Android,Http,Get,Inputstream,不熟悉JavaHTTP请求,并且无法确定如何解码输入流。这是一个简单的GET,因此根据这里的建议,我使用以下代码: public void setupIPCheck() throws IOException { URLConnection connection = new URL("http://freegeoip.net/json/").openConnection(); InputStream response = connection.getInputStream();
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。您可以使用从输入流创建JSONObject
,如下所示:
JSONObject obj=new JSONObject(new JSONTokener(connection.getInputStream())
首先,您需要决定要使用什么来解析JSON(根据URL猜测格式)。这将决定您是否可以将InputStream
交给解析器,或者是否需要将数据转换为其他格式(例如,String
)。您可以使用我计划用于从json(String)转到的org.json API()->对象,但我实际上只需要JSON中的一个字段,如果有更简单的方法从inputStream解析出单个字段,我愿意做一些不同的事情。