gpt4 book ai didi

java - 想要将 POST 请求后收到的响应存储在可以在内部类外部访问的变量中

转载 作者:行者123 更新时间:2023-11-30 01:18:34 26 4
gpt4 key购买 nike

 String Data;
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
System.out.println(response);
Data = response;

} catch (Exception e){
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}
) {
@Override
protected Map<String, String> getParams()
{ //code for POST parameters
}
};
queue.add(stringRequest);

我得到错误Variable 'Data' is accessed from within inner class, needs to be declared final.

问题是,如果我确实将 String 声明为 final,我会得到这样的错误:Cannot assign a value to final variable 'Data' 因为我不能在类。

有没有一种方法可以将响应存储在一个字符串中,然后可以在类的主体之外使用它?

最佳答案

有很多方法,其中最常见的是调用方法。

例如:-

public class A {
String responseData = null;
public onResponseCallMe(String data){
//do whatever you want to do with this data here
// like saving to global variable;
responseData = data;
}
RequestQueue queue = Volley.newRequestQueue(this);

StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
System.out.println(response);
onResponseCallMe(response);

} catch (Exception e){
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}
) {
@Override
protected Map<String, String> getParams()
{ //code for POST parameters
}
};
queue.add(stringRequest);
}

关于java - 想要将 POST 请求后收到的响应存储在可以在内部类外部访问的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37457643/

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