【问题标题】:Strange behaviour when receiving data接收数据时的奇怪行为
【发布时间】: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


    【解决方案1】:

    我认为 int count 在您的示例中始终为 0,因此始终会命中 return 语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 2019-12-13
      • 1970-01-01
      • 2010-12-10
      • 2013-12-11
      相关资源
      最近更新 更多