gpt4 book ai didi

android - 如何让 StringRequest Volley 等待响应?

转载 作者:行者123 更新时间:2023-11-29 18:45:40 27 4
gpt4 key购买 nike

我是 Android 的新手,我希望得到有关 StringRequestVolley 的帮助。在我的项目中,我将调用多个 API。为此,我创建了一个名为 ProcessAPIRequest 的方法。为此,我将 URL 作为参数传递。这是我的函数代码 fragment 。

private static String iResponse="";

public static String ProcessAPIRequest(String pURL, Context pContext){
iResponse="";
StringRequest stringRequest = new StringRequest(pURL,
new Response.Listener<String>() {
@Override
public void onResponse(String strResponse) {
iResponse=strResponse;
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//error.networkResponse;
//Log.e("error", "" + error);
}
});
RequestQueue requestQueue = Volley.newRequestQueue(pContext);
requestQueue.add(stringRequest);
return iResponse;
}

我面临的问题是,每当我调用此方法时,我得到的响应都是空的。 public void onResponse 方法在返回响应后触发。我希望在获得结果后立即返回响应。

最佳答案

您将为此使用一个回调接口(interface)。这是一个例子。

public interface OnResponse{
void onResponse(String response);
}

public static void ProcessAPIRequest(String pURL, Context pContext, final OnResponse onResponse){
StringRequest stringRequest = new StringRequest(pURL,
new Response.Listener<String>() {
@Override
public void onResponse(String strResponse) {
onResponse.onResponse(strResponse); // callback for success
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//error.networkResponse;
//Log.e("error", "" + error);
onResponse.onResponse(null); // callback for error
}
});
RequestQueue requestQueue = Volley.newRequestQueue(pContext);
requestQueue.add(stringRequest);
}

关于android - 如何让 StringRequest Volley 等待响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52039453/

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