Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;StringBuffer sb=新建StringBuffer();在Android中获取空值_Java_Android_Stringbuffer - Fatal编程技术网

Java &引用;StringBuffer sb=新建StringBuffer();在Android中获取空值

Java &引用;StringBuffer sb=新建StringBuffer();在Android中获取空值,java,android,stringbuffer,Java,Android,Stringbuffer,我在http get请求中使用了下面的代码,但是我从return中得到的是null。我不知道为什么 public static String getResponseFromGetUrl(String url) throws Exception { StringBuffer sb = new StringBuffer(); try { HttpResponse httpResponse

我在http get请求中使用了下面的代码,但是我从return中得到的是null。我不知道为什么

  public static String getResponseFromGetUrl(String url) throws Exception {

               StringBuffer sb = new StringBuffer();


                try {
                    HttpResponse httpResponse = httpclient.execute(httpRequest);

                    String inputLine = "";

                    if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

                        InputStreamReader is = new InputStreamReader(httpResponse
                                .getEntity().getContent());
                        BufferedReader in = new BufferedReader(is);
                        while ((inputLine = in.readLine()) != null) {

                            sb.append(inputLine);
                        }

                        in.close();

                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    return "net_error";         
                } finally {
                    httpclient.getConnectionManager().shutdown();
                }

                return sb.toString();

   }
我所使用的函数是

  String json_str = HttpUtils.getResponseFromGetUrl("www.xxx.com/start");
   if ((json_str == null)) Log.d("Chen", "lastestTimestap----" + "json_str == null");

有时会打印日志。不总是,事实上是1%。但我不知道为什么会这样。

此代码不会生成“null”。必须有更多的代码没有显示

如果这是您所有的代码,我建议您删除StringBuffer并将其替换为

return "";
更可能的情况是,您忘记了提及一些代码,这些代码正在执行以下操作

Object o = null;

sb.append(o); // appears as "null"
编辑:根据您的更新,我必须假设您正在阅读类似“null”的行

您很可能不希望放弃每行之间的换行符。我建议您也添加(“\n”),或者只记录您得到的所有文本,而不考虑新行


顺便说一句,请不要使用StringBuffer,因为它的替代品StringBuilder已经存在近十年了。有一种常见的误解,即使用StringBuffer有助于多线程,但更常见的是,它会导致错误的代码,因为在多线程上下文中正确使用StringBuffer非常困难,如果不是不可能的话,那么此代码将不会生成“null”。必须有更多的代码没有显示

如果这是您所有的代码,我建议您删除StringBuffer并将其替换为

return "";
更可能的情况是,您忘记了提及一些代码,这些代码正在执行以下操作

Object o = null;

sb.append(o); // appears as "null"
编辑:根据您的更新,我必须假设您正在阅读类似“null”的行

您很可能不希望放弃每行之间的换行符。我建议您也添加(“\n”),或者只记录您得到的所有文本,而不考虑新行



顺便说一句,请不要使用StringBuffer,因为它的替代品StringBuilder已经存在近十年了。有一种常见的误解,即使用StringBuffer有助于多线程,但更常见的是,它会导致错误的代码,因为在多线程上下文中正确使用StringBuffer非常困难,如果不是不可能的话

我们可以看到更多的代码吗?你如何确定它是空的?也许你不小心做了类似于
sb.append(“空”)的事情@dystroy我已经编辑了code@johnchen902我编辑代码所示的方法在任何情况下都不能返回
null
。要么你没有在问题中显示真正的代码,要么调用它的函数实际上调用了不同的方法(例如,在不同的类中)。我们能看到更多的代码吗?你如何确定它是空的?也许你不小心做了类似于
sb.append(“空”)的事情@dystroy我已经编辑了code@johnchen902我编辑代码所示的方法在任何情况下都不能返回
null
。要么你没有在问题中显示真正的代码,要么调用它的函数实际上调用了不同的方法(例如,在不同的类中)。他没有在任何地方提到NullPointerException。非常感谢。但事实上我没有这样做。所以我很抱歉puzzle@MarshalChen除非你准确地打印出你作为输入得到的信息,您如何确定?我不确定输入是什么,但我认为stringbuffer可以是“”,但不能为null,因为我已经创建了it@MarshalChen如果它是
null
,您将看到一个NullPointerException。要查看
null
你必须在文本中包含这一点,即它是
“null”
不是
null
他在任何地方都没有提到NullPointerException。非常感谢。但事实上我没有这样做。所以我很抱歉puzzle@MarshalChen除非你准确地打印出你作为输入得到的东西,否则你怎么能确定呢?我不确定输入是什么,但在我看来,stringbuffer可以是“”,但不能为null,因为我已经创建了it@MarshalChen如果它是
null
,您将看到一个NullPointerException。要查看
null
,您必须在文本中包含它,即它是
“null”
不是
null