当前位置: 首页 > 知识库问答 >
问题:

我能和Volley做一个同步请求吗?

邵诚
2023-03-14

假设我在一个已经有后台线程的服务中。我可以在同一个线程中使用volley来执行请求吗,这样回调就会同步发生?

这有两个原因:-首先,我不需要另一个线程,创建它将是一种浪费。-其次,如果我在ServiceIntent中,线程的执行将在回调之前完成,因此我将没有来自Volley的响应。我知道我可以创建我自己的服务,它有一些线程,我可以控制运行循环,但它希望有这个功能在Volley。

共有1个答案

闾丘昊然
2023-03-14

看起来,使用Volley的RequestFuture类是可能的。例如,要创建同步JSON HTTP GET请求,可以执行以下操作:

RequestFuture<JSONObject> future = RequestFuture.newFuture();
JsonObjectRequest request = new JsonObjectRequest(URL, new JSONObject(), future, future);
requestQueue.add(request);

try {
  JSONObject response = future.get(); // this will block
} catch (InterruptedException e) {
  // exception handling
} catch (ExecutionException e) {
  // exception handling
}
 类似资料:
  • 我试图使用RequestFuture向服务器发出同步请求,但它不起作用。使用异步完成相同的请求时效果良好。 这是我的代码: 我得到一个nullpointerexception: Java语言lang.NullPointerException:尝试调用虚拟方法的java。lang.String组织。json。J主题。com上的null对象引用上的toString()。数学应用程序。所有模块。在com

  • 本文向大家介绍详解XMLHttpRequest(一)同步请求和异步请求,包括了详解XMLHttpRequest(一)同步请求和异步请求的使用技巧和注意事项,需要的朋友参考一下 XMLHttpRequest 让发送一个HTTP请求变得非常容易。你只需要简单的创建一个请求对象实例,打开一个URL,然后发送这个请求。当传输完毕后,结果的HTTP状态以及返回的响应内容也可以从请求对象中获取。  通过XML

  • 问题内容: 我一直在使用此功能并在很长时间内都避免在错误修复列表中出现此错误,但是我终于到达了列表的末尾,最后我必须使函数返回true / false以声明是否验证成功与否。 我正在使用ajax将某些字段与数据库中已有的字段进行比较,并且默认情况下该方法以异步方式进行操作。 我在调用中设置了一个变量,因此,调用方法没有得到响应,因此我的所有js / jquery在pageLoad上都失败了…如果我

  • 问题内容: 当我使用of方法时,和之间有什么区别? 问题答案: Mozilla开发人员:同步和异步请求 支持同步和异步通信。但是,一般而言,出于性能方面的考虑,异步请求应比同步请求优先。 简而言之,同步请求会阻止代码执行,并可能泄漏内存和事件。这可能会导致严重的问题。使用同步请求的唯一可行理由是更轻松地促进其中的下载。

  • 问题内容: 同步请求和异步请求之间的性能(速度方面)是否有差异? 使用异步请求的所有原因是什么? 问题答案: 您应该始终使用异步Ajax请求,实际上,我只知道应该使用同步Ajax请求的一个地方,即您是否在Ajax请求中,将新的JavaScript文件嵌入客户端,然后引用类型和/或原始Ajax请求返回的JavaScript文件中的对象。然后,应该(或可以理智地)通过使用同步Ajax请求包括对这个新J

  • 问题内容: 我想在其他线程中使用Android Volley库发出请求。 我的意思是,线程中存在连接,UI线程中处理了数据。 我要这样做是因为我有很多连接,要处理的数据很多,现在用户界面被阻止了。 那么,如何在不同的线程中创建和启动连接,然后在UIThread中执行OnResponse()/ OnErrorResponse()? 问题答案: Volley执行的每个网络请求都在后台线程中执行。凌空在