gpt4 book ai didi

java - 为什么 getResult 得到 null

转载 作者:行者123 更新时间:2023-12-02 01:42:35 28 4
gpt4 key购买 nike

我想获取 getServerResult() 方法的结果,但返回“null”。但是,httpURLConnectionPost()方法中的Logcat正常,返回“成功”。请回答我!在这种情况下,为什么我在 httpURLConnectionPost() 方法和 getServerResult() 方法之外得到 null ?

private String serverResult;

public void httpURLConnectionPost(final String urlString){
new Thread(new Runnable() {
public void run() {
try {
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.connect();

String body = stringBuilder();

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), "UTF-8"));
writer.write(body);
writer.close();

int responseCode = connection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK){
InputStream inputStream = connection.getInputStream();

String line;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

while ((line = bufferedReader.readLine()) != null) {
stringBuilderResult.append(line);
}
String result = stringBuilderResult.toString();
Log.d("MSG","result= "+result);
setServerResult(result);
}
} catch (Exception e) {
e.printStackTrace();

}
}
}).start();
}

public void setServerResult(String serverResult){
this.serverResult = serverResult;
}

public String getServerResult(){
return serverResult;
}

D/MSG:结果=成功

使用 getServerResult() :D/TAG:结果 = null

最佳答案

你在哪里调用httpURLConnectionPost?无论您是否应该为此使用异步任务,调用 HTTP 请求的函数都不会返回任何内容,因为代码正在执行并在收到响应之前完成。
在尝试获取任何数据之前,您需要确保任务已完成。通常您会使用异步任务,并在 onPostExecute 部分中执行一些操作来让应用程序知道数据已返回。

关于java - 为什么 getResult 得到 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54240012/

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