问题描述
public Maybe<HttpResponse<?>> post(Publisher<CompletedFileUpload> files) {
MultipartBody.Builder requestBody = MultipartBody.builder();
return Flowable.frompublisher(files).flatMap(file -> {
requestBody
.addPart("file",file.getFilename(),MediaType.TEXT_PLAIN_TYPE,file.getBytes())
.addPart("id","asdasdsds");
return this.iProductClient.post(requestBody.build());
});
}
来自 this.iProductClient.post(requestBody.build());
的返回类型是 Maybe<HttpResponse<?>>
如何将下面的代码转换为返回 Maybe<HttpResponse<?>>
,目前下面的方法有错误
return Flowable.frompublisher(files).flatMap(file -> {
requestBody
.addPart("file","asdasdsds");
return this.iProductClient.post(requestBody.build());
});
解决方法
您可以在请求发送中使用 collect
然后使用 flatmap:
return Flowable.fromPublisher(files)
.collect(MultipartBody::builder,(requestBody,file) -> {
requestBody
.addPart("file",file.getFilename(),MediaType.TEXT_PLAIN_TYPE,file.getBytes())
.addPart("id","asdasdsds");
})
.flatMapMaybe(requestBody -> iProductClient.post(requestBody.build()))
;