如何将从Http请求收到的数据放入数组中?

时间:2014-08-11 10:58:08

标签: java post

我需要将post请求数据插入到数组中。我将获得三组JSON信息,我想在String数组中插入每个JSON结果。这是我目前使用的代码。

URL url = new URL("http://localhost:9090/service.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer response = new StringBuffer();
int i = 0;
ArrayList<String> arr = new ArrayList<String>();
while ((line = reader.readLine()) != null) {
        response.append(line);
        arr.add(response.toString());
        System.out.println(arr.get(i));
        i++;
    }

如果输入如下:

abc
def
ghi

此代码输出如下:

abc
abcdef
abcdefghi

但我需要像输入一样输出。

3 个答案:

答案 0 :(得分:1)

移动

StringBuffer response = new StringBuffer();

到'while'区块的第一行

答案 1 :(得分:1)

您尚未重新初始化StringBuffer变量回复。此外,您实际上不需要使用StringBuffer,因为您没有操纵字符串信息。我建议你尝试以下(在某些时候你不想使用localhost):

URL url = new URL("http://localhost:9090/service.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
int i = 0;
ArrayList<String> arr = new ArrayList<String>();
while ((line = reader.readLine()) != null) {
   arr.add(line);
   // debug information
   System.out.println(arr.get(i));
   i++;
}

答案 2 :(得分:0)

arr.add(response.toString());更改为arr.add(line);并且有效。