gpt4 book ai didi

java - "StringBuffer sb = new StringBuffer()"在Android中获取空值

转载 作者:行者123 更新时间:2023-12-01 23:40:31 27 4
gpt4 key购买 nike

我在 http get 请求中使用了下面的代码,但是我从返回中得到的是 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");

有时会打印Log。并非总是如此,事实上就像1%。但我不知道为什么会导致。

最佳答案

此代码不会产生“null”。一定还有更多代码没有显示。

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

return "";

您很可能忘记提及一些正在执行类似操作的代码

Object o = null;

sb.append(o); // appears as "null"

编辑:根据您的更新,我必须假设您正在阅读类似“null”的行

您不太可能想要丢弃每行之间的换行符。我建议您也追加(“\n”),或者只记录您获得的所有文本,而不考虑新行。

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

关于java - "StringBuffer sb = new StringBuffer()"在Android中获取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18033328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com