【发布时间】:2014-03-03 15:00:46
【问题描述】:
我正在开发一个 Android 应用程序,它需要我从服务器获取一些数据,这些数据来自 JSON 数据,我必须像 7 这样接收 @ 987654321@,我正在使用常规套接字编程来获取这些数据,我通过启动一个线程来获取它,该线程将等待来自服务器的数据。
我正在使用以下方法:
public String getServerRespons() throws JSONException {
String responseLine, server_response = null_string;
try {
input = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
} catch (IOException e) {
}
int count = 0;
boolean first = true;
try {
while (true)
{
if((responseLine = input.readLine()) == null){
break;
}
first = false;
server_response = server_response + responseLine;
//
// some processing to make sure it's a valid JSON
//
if(count == 0){ // related to the Processing Lines result
System.out.println(server_response);
return response; // when commenting that line everything is ok
}
}
} catch (IOException e) {
Login.errorMessage.setText(conn_err);
}
return null;
}
通过这种方式,我只得到了 两个 或 三个 JSON Objects 七个。但是,当评论 return 行并让它完成接收过程时,我有效地得到了所有七个对象,并且每个对象都是分开的,这使我确保我为验证 JSON 所做的处理进展顺利。
【问题讨论】:
标签: android json input bufferedreader