我需要将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
但我需要像输入一样输出。
答案 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);
并且有效。