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

使用RxJava/RxAndroid进行改型:可观察的工作方式如何?

居和顺
2023-03-14

我只是从改型和RXJava开始。我有一个api调用,它上传一个文件并返回一个http响应,该响应的主体为空,状态为200(以防everythign工作正常)。我把它翻译成:

 @PUT("/in")
 Observable<Void> uploadFile(@Body ResponseBody file);
Caused by: java.lang.IllegalArgumentException: Could not locate call 
adapter for rx.Observable<java.lang.Void>. Tried:
    * retrofit.ExecutorCallAdapterFactory
    at retrofit.Retrofit.nextCallAdapter(Retrofit.java:207)
    at retrofit.Retrofit.callAdapter(Retrofit.java:175)
    at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:45)

第二步,在我弄清楚如何映射到改型的请求是链多文件上传。我该怎么做?

也欢迎链接到使用RXJava+Retrifit的高级教程或示例。

共有1个答案

柳业
2023-03-14

我想您的问题是您不能将文件作为参数传递,您应该将RequestBody参数作为参数传递

RequestBody.create(mediaType, file);

因此,改型调用的签名应该如下所示:

@PUT("/in")
Observable<Void> uploadFile(RequestBody file);
 类似资料:
  • 我正在学习RxJava/Android(我目前正在将其与网络呼叫改造相结合),现在我有一个问题,假设我有6个不同的可观察对象,如下所示:<代码>可观察 apiInterface等为改造客户端,GetClient等为调用 现在,我如何异步执行这6个不同的调用,以及当所有6个调用都完成时-

  • 我正在尝试开发我的第一个RxJava例子 我有一个带有文本框和三个按钮的主要活动。第一个按钮初始化单独类中的整数。第二个按钮订阅一个可观察量,该可观察量假定正在观察整数。第三个按钮将整数的值减小 1。 这是我的密码 和班级 当我尝试使用 订阅时,它只是给了我 的值(即 6),然后它给了我完成! 然后我尝试使用,认为我需要使用,只是而不是,但后来我得到了一个返回的空的,然后再次完成! 有人能帮助我从

  • 问题内容: 我对RxJava(和一般的Reactive范式)很陌生,所以请多多包涵。 假设我有这个和这个嵌套的数据结构: 并假设我有以下API端点: 现在,让我们假设: ** 现在,如果有的话,如何递归所有子项评论?即获得ID为[1,2,3,4,5,6]的评论? ** 我已经搜索并偶然发现了这个:https : //jkschneider.github.io/blog/2014/recursive

  • 我在创建一个将返回对象列表的可观察对象时遇到了麻烦。我有一个ID列表,想对我的数据库提出一个请求。在这种情况下,我使用的是Firebase。当得到一个结果时,我希望将这些对象中的每一个编译成一个列表,然后返回该列表。我需要在返回之前等待所有的对象都返回。我在我的视图模型反序列化器类中这样做。这是我的代码。 有几种方法可以从firebase数据库中返回数据,我可以返回Documentsnapshot

  • 我目前正在研究更好的方法来处理我的应用程序中的事件。目前,我有多个监听器订阅和取消订阅不同事件上的有趣对象。 例如,在按钮上单击会创建一个侦听器,如果操作成功(在这种情况下它会自动注销自己)或发生非致命错误(在这种情况下它会自动重试操作),它会侦听客户端对象。 客户端对象依次启动一个android服务,该服务可以发出不同的状态事件,如果应用程序当前不可见,则会导致用户界面自我更新或显示通知。 在我

  • 我正在从事一个涉及Hystrix的项目,我决定使用RxJava。现在,忘记Hystrix的其余部分,因为我相信主要问题是我完全搞砸了正确编写可观察代码。 需要:我需要一种方法来返回一个代表多个可观察对象的可观察对象,每个可观察对象都运行一个用户任务。我希望该可观察对象能够返回任务的所有结果,甚至错误。 问题:可观测流会因错误而消亡。如果我有三个任务,而第二个任务引发了一个异常,那么即使第三个任务成