如何解决为什么 Volley Request Future get() 方法永远运行
我正在尝试发出同步的 Volley 网络请求。我尝试使用 request future 来完成这项工作。所以我想要做的是请求一个 JSON 数组,并将它解析为一个数组列表,然后使用这个列表来设置一个列表视图布局。
这是逻辑代码:
public void getFriendList() throws JSONException {
final String url = "http://ip/users/"+ LoginLogic.hold.getId() +"/friends";
JSONArray jsonArray = new JSONArray();
serverRequest.sendToServer(url,jsonArray,"POST");
}
@Override
public void onSuccess(JSONArray arr) throws JSONException {
for(int i = 0; i < arr.length(); i++){
JSONObject temp = arr.getJSONObject(i);
Integer id = temp.getInt("id");
String email = temp.getString("email");
String firstName = temp.getString("firstName");
String lastName = temp.getString("lastName");
friendList.add(new Friends(id,email,firstName,lastName,"null"));
}
}
@Override
public void sendToServer(String url,JSONArray newUserArray,String methodType) throws JSONException {
int method = Request.Method.GET;
if(methodType.equals("POST")){
method = Request.Method.POST;
}
RequestFuture<JSONArray> future = RequestFuture.newFuture();
JsonArrayRequest request = new JsonArrayRequest(method,url,newUserArray,future,future);
AppController.getInstance().addToRequestQueue(request,tag_json_obj);
try{
JSONArray response = future.get(5,TimeUnit.SECONDS);
I.onSuccess(response);
} catch (InterruptedException e) {
e.printstacktrace();
} catch (ExecutionException e) {
e.printstacktrace();
} catch (TimeoutException e) {
e.printstacktrace();
}
我对 volley request future 不太熟悉,那么我该如何设置这个属性呢?我在这里犯了什么错误?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。